【发布时间】:2017-02-19 09:55:12
【问题描述】:
我在Firefox中使用下面的代码来设置两个对象之间的原型继承关系:
var a = {};
var b = {};
b.__proto__ = a;
a.dosomething = function() {
alert('ok');
};
b.dosomething(); //ok
但它仅适用于 Firefox,因为 __proto__ 仅适用于 Firefox。
在其他网络浏览器中,如果 a 和 b 是使用构造函数创建的,我可以使用
b.constructor.prototype = a;
设置继承关系。
但在上面的例子中,a 和b 的构造函数都是Object。
我不能改变Object的原型。
除了__proto__,还有什么方法可以设置继承关系吗?
【问题讨论】:
-
你的意思是
__proto__? -
是的,它是 proto
-
在上面的代码中你不是将b设置为a的原型吗?在下面的代码中,您为什么使用
b.constructor.prototype = a而不是b.prototype=a?另外你是对的对象是 js 中的母原型,我只是为了更好地理解这个问题。
标签: javascript