js对象及创建对象的几种方法

把人看成一个对象(person),对象可以有属性和方法
人的姓名(name),年龄(age),性别(sex)等等是属性
人可以吃饭(eat),睡觉(sleep)这是方法
这就创建了一个person对象,创建对象的其中一种方法

var person = {
name:'Mary',
age:13,
sex:'女',
eat:function(){
console.log("eat"); 
},
sleep:function(){
console.log("eat");
}
}

要访问person里的name属性,有两种方法
person.name
person[‘name’]

创建对象的另一种方法:构造器(比较常用)

定义构造器:

function Person(name,age,sex){
this.name = name;
this.age = age;
this.sex = sex;
this.eat = function(){
console.log("eat"); 
};
this.sleep = function(){
console.log("sleep"); 
}
}

调用构造方法:

var person = new Person("Mary",13,'女');

参数与定义要对应

创建对象的第三种方法:工厂模式(很少用)

function newPerson(name,age,sex){
var person = new Object();
person.name = name;
person.age = age;
person.sex = sex;
person.eat = function(){
console.log("eat"); //控制台输出,可以不看
};
person.sleep = function(){
console.log("sleep"); //控制台输出,可以不看
}
return person;
}

调用

var p = newPerson('Mary',13,'女');

可以直接在控制台复制上述代码执行:
js对象及创建对象的几种方法_第1张图片

创建对象方法之原型模式(比较高级)

function Person(){

}
Person.prototype.name = 'Mary';
Person.prototype.age = '13';
Person.prototype.sex = '女';
Person.prototype.eat = function(){
console.log("eat");
};
Person.prototype.sleep = function(){
console.log("sleep"); 
}

创建对象方法之混合模式:就是原型和构造器混合使用,只有针对少数有需要的情况才会用

function Person(name,age,sex){
this.name = name;
this.age = age;
this.sex = sex;
}
Person.prototype.eat = function(){
console.log("eat"); 
};
Person.prototype.sleep = function(){
console.log("sleep"); 
}

你可能感兴趣的:(js对象及创建对象的几种方法)