var b = Object.create(a)vs. var b = a

时间:2014-10-27 11:16:15

标签: javascript

在javascript中,有什么区别:

var a = { steak:5, soup:2 };
var b = Object.create(a);

var a = { steak:5, soup:2 };
var b = a;

2 个答案:

答案 0 :(得分:0)

区别在于a是b的原型,而不是同一个对象。

var a = { steak:5, soup:2 };
var b = a;
b.peas = 1;
console.log(a.peas); // 1

VS

var a = { steak:5, soup:2 };
var b = Object.create(a);
b.peas = 1;
console.log(a.peas); // undefined

答案 1 :(得分:0)

使用create时,您将使用给定的原型创建 new 对象。当您使用 = 运算符时,创建新对象,只需将其引用复制到另一个变量。

参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create

您可以测试

var a = { steak:5, soup:2 };
var b = Object.create(a);

// vs

var a = { steak:5, soup:2 };
var b = a;

此处:http://jsfiddle.net/augusto1982/a8zjg1to/