javascript 检查对象原型(prototype)

标签 javascript prototype

下面的代码有什么区别吗:

inst instanceof Constr

inst.__proto__ === Constr.prototype

例如:

var xyz = {}
xyz instanceof Object

xyz.__proto__ === Object.prototype

?如果是这样,有什么区别,哪个是首选?

最佳答案

__proto__ 不是 ECMAScript 5 规范的一部分,您无法保证将来会得到支持。访问对象原型(prototype)的标准方法是访问构造函数的原型(prototype),或者更好的是,Object.getPrototypeOf。 (但这在 IE8 上不起作用)。

instanceof检查构造函数的原型(prototype),同时“测试对象原型(prototype)链中 constructor.prototype 的存在。”

如果你的目标是检查一个对象是否是一个特定类的实例,如果它不是一个直接实例对你来说没问题,那么你应该使用 instanceof 操作符:它真的只是为此而制作。

关于javascript 检查对象原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17365126/

相关文章:

c - 结构中的函数指针,但在 C 中具有不同原型(prototype)的函数

javascript - 为什么 Object.keys 不是 Object.prototype.keys?

javascript - 正则表达式无法正常工作

javascript - Python-Flask AJAX GET 数据不显示在 HTML 页面上

Javascript 在有断点的情况下可以正确执行,但在没有断点的情况下却不能正确执行 - 为什么?

javascript - 扩展 pixi.js sprite 并在构造函数中访问父级的属性

javascript - Raphael svg 反转 y 轴坐标

javascript - Node.js 捕获并重试 ECONNRESET

JavaScript:.extend 和 .prototype 有什么用?

JavaScript 的 Object.create 方法