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吗? |
免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。
版权声明:作者保留权利,不代表天盟立场。
|
|
|
|
这种内置函数,文档里说的清清楚楚。
你给Object传递a这个引用值,说白了就是obj和a指向同一个对象,所以为true。
create的第一个参数是原型,也就是说obj从a继承属性,当然为false |
|
|
|
|