继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

JavaScript创建对象之Object.create()方法

为爱心太软
关注TA
已关注
手记 151
粉丝 1.4万
获赞 860
Object.create()

Object.create()方法会继承指定的原型对象的属性和方法去创建一个新的对象。该方法接收两个参数,其中第一个参数是这个新创建的对象的原型,第二个是可选参数,与Object.definePropertperties()方法的第二个参数格式相同。

Object.definePropertperties()的用法可参考:JavaScript中的对象

例子:

var obj = {
    name: "Tom",
    age: 20,
    family: ["mama", "baba"]
};
var person = Object.create(obj, {
    "job": {
        value: "IT",
        congigurable: true,
        enumerable: true,
        writable: false
    },
    "age": {
        value: 18,
        congigurable: true,
        enumerable: true,
        writable: false
    }
});
person.family.push("yeye");
person.family.push("nainai");

console.log(person.name);
console.log(person.age);
console.log(person.job);
console.log(person.family);
console.log(person.family == obj.family);
//输出:Tom、18、IT、[mama,baba,yeye,nainai]、true

如果只传入第一个参数,使用Object.create() 方法创建对象的过程与下面函数 obj 的执行结果相同。

例子:

function obj(o) {
    function Fn() {};
    Fn.prototype = o;
    return new Fn();
}

var person = {
    job: "IT"
}
var p1 = obj(person);

var p2 = Object.create(person);

console.log(p1.job);
console.log(p1.job);
console.log(p1.job == p2.job);
//输出:IT、IT、true

文中的代码部分,带有“例子”和“测试代码”字样的,只是用来学习或测试某一功能用的代码,不可以直接用于项目的开发中。带有“代码如下”字样的,都是经过本人测试,简单修改即可用于项目开发中的代码,如有错误,欢迎指出。

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP