如何在javascript中访问对象原型?
所有文章都写到 JavaScript 是一种基于原型的语言,这意味着每个对象都有一个原型(或者更准确地说,原型链)。
到目前为止,我已经尝试了以下代码片段:
var F = function();
F.prototype.member1 = 1;
var object1 = new F();
console.log(object1.member1); // prints 1
如何访问 object1
的原型对象?有没有一种与浏览器无关的方法来做到这一点(我的意思是,不依赖 __proto__
属性?参见 这个链接,但也许自 2010 年以来有新的发展)如果我不能,你能分享一下背后的原理吗?
In all the articles it is written that JavaScript is a prototype-based language, meaning that every object has a prototype (or, more precisely, prototype chain).
So far, I've tried the following code snippet:
var F = function();
F.prototype.member1 = 1;
var object1 = new F();
console.log(object1.member1); // prints 1
How can I access the prototype object of object1
? Is there a browser-neutral way to do that (I mean, not relying on __proto__
property? Seen this link, but maybe there are new developments since 2010) If I can't, could you share please the rationale behind the hood?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
如果您知道
实例
的名称类函数,您可以简单地访问原型:如果您不知道:
1)
2) 或
3) 或者
为了兼容性,您可以将以下代码片段放入代码中(并始终使用
Object.getPrototypeOf(instance)
返回原型):更新:
根据 ECMA-262第 6 版(2015 年 6 月)
__proto__
属性已标准化为 Web 浏览器的附加功能。现在所有最新版本的顶级浏览器都支持它。了解有关__proto__
的更多信息:MDN:
Object.prototype.__proto__
EDMA-262 第 6 版(2015 年 6 月):
B.2.2.1 Object.prototype.__proto__< /code>
If you know name of
instance
class function, you can simply access prototype as:If you don't:
1)
2) or
3) or
For compatibility you can place into your code the following snippet (and use always
Object.getPrototypeOf(instance)
to return prototype):UPDATE:
According to ECMA-262 6th Edition (June 2015)
__proto__
property is standardized as additional feature for Web browsers. All latest editions of top browsers supports it now. Read more about__proto__
:MDN:
Object.prototype.__proto__
EDMA-262 6th Edition (June 2015):
B.2.2.1 Object.prototype.__proto__
它看起来
适用于此,并且与现代浏览器兼容。
以下是 MDN 上的兼容性表
It looks like
will work for this, and is compatible with modern browsers.
Here are the compatibility tables on MDN