js创建对象的方法

129 阅读1分钟
 // 1. 对象直接量
var obj1 = {}; //空对象

var obj2 = {
    name: "ys",
    age: 12
};
var obj3 = {
    name: "ys",
    age: 12,
    like: {
        drink: "water",
        eat: "food"
    }
};
// 2.new创建对象
var obj1 = new Object();
var obj2 = new Array();
var obj3 = new Date();
var obj4 = new RegExp("ys");

// 3.自定义对象
function Person(name, age) {
    this.name = name;
    this.age = age;
}
var obj1 = new Person("ys", 12);

// 4.Object.create()创建
// 该方法有两个参数,我就只解释下第一参数,第二个参数不常用(对对象的属性进行进一步描述) 
// 第一个参数:传入要继承的原型(prototype)对象 
// 怎样理解这句话呢?
var obj1 = Object.create({
    name: "ys",
    age: 12
});
console.log(obj1); //{}
console.log(obj1.age); //12
// obj1为{},为什么可以访问到属性值呢?我们理解下第一个参数的意义“传入要继承的原型对象”
// console.log(obj1.__proto__);  //Object {name: "ys", age: 12}
// 对象本身为空,但是原型链上数据不为空,存在obj1.age,所以可以访问到