var obj=new Object(a)和var obj=Object.create(a);创建对象的方法有什么区别

var a={x:1};

var obj=new Object(a);

obj.x;

obj.hasOwnProperty("x");//输出true


var a={x:1}

 var obj=Object.create(a);

 obj.x;

obj.hasOwnProperty("x");//输出false

以上这两种方法有什么区别,第一种为什么会输出true明明x属性是由对象a传进来的,第一种的原型是指向Object.prototype吗?

慕姐8259394
浏览 1705回答 1
1回答

anet

这种内置函数,文档里说的清清楚楚。你给Object传递a这个引用值,说白了就是obj和a指向同一个对象,所以为true。create的第一个参数是原型,也就是说obj从a继承属性,当然为false
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript