JS创建对象的几种方法
var person={
age: 18,
name: "jack",
sayName: function(){
alert(this.name);
}
}
var person=new Object();
person.age=18;
person.name="jack",
person.sayName=function(){
alert(this.name);
}
function createObj(name,age){
var person=new Object();
person.age=age;
person.name=name;
person.sayName=function(){
alert(this.name);
}
return person;
}
function Person(name,age){
this.age=age;
this.name=name;
this.sayName=function(){
alert(this.name);
}
}
- 原型模式(直接定义prototype属性)
当为对象实例添加一个属性的时候,这个属性就会屏蔽原型对象中保存的那个同名属性,但不会修改那个属性,可以使用delete删除实力属性,从而可以重新访问原型中的属性
function Person(){
person.prototype.age=18;
person.prototype.name="Jack";
person.prototype.sayName=function(){
alert(this.name);
}
}
var p1=new Person();
var p2=new Person();
p1.name="Nicholas";
alert(p1.name);
alert(p2.name);
function Person(){
person.prototype={
name: "Jack",
age: 18,
sayName: function(){
alert(this.name);
}
}
}
var p1=new Person();
var p2=new Person();
fucntion Person(name,age){
this.name=name;
this.age=age;
}
Person.prototype={
home: ["shanghai","beijing"],
sayName: function(){
alert(this.name);
},
sayAge: function(){
alert(this.age);
}
};
var p1=new Person("Jack",18);
var p2=new Person("Mary",20);