首先看看旧模式:基于类的对象构建语法:
// 构造器(一般大写),带status属性
var Cons = function(status){
this.status = status;
};
// 给Cons一个getStatus的公共方法
Cons.prototype.getStatus = function(){
return this.status;
}
// 构造Cons实例
var myObject = new Cons("normal");
myObject.getStatus();
推荐/现代模式:对象字面量语法
对象字面量是一个(名:值)对列表,这里,我们可以想想JSON(JavaScript Object Notation),其语法都使用到“:”,JSON就是基于JavaScript的一个子集。
1.
myScript = new Object();
myScript.init = function(){};
myScript.validate = function(){};
myScript.init(); // 调用
2.对象内部方法访问变量
var myObject = {
name : "Toby",
age : 20,
subject : ["c++","java","php"]
init : function(){
alert(this.name + this.age + this.subject[0]);
},
create : function(){},
append : function(){}
subCount : funciton(){
return subject.length;
},
};
myObject.init(); // 调用
3.prototype原型链方式
// 声明构造函数,通过prototype属性添加公有成员
function MyConstructor(){};
MyConstructor.prototype={
name : "Toby",
age : 20,
subject : ["c++","java","php"],
init : function(){
alert(this.name + this.age + this.subject[0]);
},
create : function(){},
append : function(){},
subCount : funciton(){
return subject.length;
},
}
var myCons = new MyConstructor(); //声明
myCons.init(); // 调用