gpt4 book ai didi

javascript - 为对象字面量设置原型(prototype)

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:57:19 26 4
gpt4 key购买 nike

假设我有以下代码;

var A = {a:10};
var B = {b:20};
B.prototype = A;
alert(B.a);

我对 B.a 越来越不确定。难道我做错了什么?如何设置对象字面量的原型(prototype)?

我知道如何为 Constructor 对象做。所以下面的代码可以完美运行

function A(){this.a=10}
function B(){this.b=20}
B.prototype = new A();
b = new B;
alert(b.a);

我如何为对象字面量做这件事?

最佳答案

对象继承自它们的构造函数的 原型(prototype)属性,而不是它们自己的。构造函数的原型(prototype)分配给内部 [[Prototype]]在某些浏览器中可用的属性为 __proto__属性(property)。

所以b要继承a,需要把a放在b的继承链上,例如

经典原型(prototype)继承:

var a = {a: 'a'};
function B(){}
B.prototype = a;

var b = new B();
alert(b.a); // a

使用 ES5 对象创建:

var a = {a: 'a'};
var b = Object.create(a);

alert(b.a); // a

使用 Mozilla __proto__:

var a = {a: 'a'};
var b = {};
b.__proto__ = a;

alert(b.a); // a

关于javascript - 为对象字面量设置原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15472005/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com