Prototype vs Object Literal,有什么不同吗?

时间:2015-07-24 14:50:53

标签: javascript

我想知道使用对象文字与使用原型之间是否存在实际差异,或者它是否真的只是偏好?我只是问,因为当我读到它听起来好像文字只是表示原型信息的更好方式,因为根据JavaScript:好格局,道格拉斯克罗克福德"对象... [有]隐藏的链接到原型对象。在我投票之前,我确实看到了这个话题。我不确定ECMA6标准是否有变化,但答案是否正确。我也问过,因为如果不是这样的话,我不知道Sandbox模式是如何工作的。感谢您阅读!

运行此基本脚本会显示文字(至少在使用object.create()时)与具有覆盖函数功能的原型类似。如果父函数发生更改,则在运行时更改继承的函数属性,假设函数未被覆盖。此外,如果从子对象中覆盖父对象,则它对父对象没有影响。

var my_literal = {}, my_object_create;

my_literal.calc = (function (x, y) {
    'use strict';
    return x * y;
}(1, 3));

my_object_create = Object.create(my_literal);

console.log(my_object_create.calc);
console.log(my_literal.calc);

my_literal.calc = 'Over ride';

console.log(my_object_create.calc);
console.log(my_literal.calc);

my_object_create.calc = (function (x, y) {
    'use strict';
    return x * y;
}(2, 4));

console.log(my_literal.calc);
console.log(my_object_create.calc);

0 个答案:

没有答案