问答详情
源自:4-2 [JavaScript]创建对象、原型链

关于那个var obj=Object.create({x:1});

这个Object.create()是个什么意思啊?是不是从Object里有那么一个属性是x:1,然后var obj 是声明了obj得到了那个属性。如果是这样,那内个obj.hasOwnProperty('x');应该是个true吧?

提问者:comlejade 2015-11-18 15:52

个回答

  • pardon110
    2015-11-19 17:31:03
    已采纳

    Object.create() ES5新增的。在创建对象的时候,我们有2种常用方法,一个是文本标记法(var obj = {}),一种是运用Object函数进行对象的创建(new Object()).但是这两种方式并不是创建的一个完完全全"干干净净"的对象,这里的干净只得是没有继承链.

    语法:Object.create(proto, [ propertiesObject ]);
    proto  一个对象,作为新创建对象的原型。如果 proto 参数不是 null 或一个对象值,则抛出一个 TypeError 异常。null表示没有原型对象(这样就创建了一个"干净的对象")

    propertiesObject  一个对象值,可以包含若干个属性,属性名为新建对象的属性名,属性值为那个属性的属性描述符对象.

  • qq_慕慕947699
    2019-10-18 18:53:17

    // Object.create 可以理解为继承一个对象,添加的属性在原型下面;