19得票3回答
JavaScript中的新对象是否有原型属性?

这是一个纯粹为了学术价值的简单问题: 如果我通过以下方式创建一个新对象:var o = { x:5, y:6 }; 或者var o = Object.create({ x:5, y:6 }); 当我查询 o.prototype 属性时,返回值是 undefined。我认为任何新创建的对象都会...

17得票8回答
JavaScript中的原型和构造函数(通俗易懂的解释)?

"JavaScript是世界上最被误解的语言" -D.Crockford 我的问题: 构造函数和原型如何用简单易懂的语言来表述? 为什么需要使用原型?使用原型和构造函数的目的是什么?它们是否提供更多的灵活性?我询问这个问题是因为我已经使用这种语言六个月了,从未遇到过必须使用原型和...

16得票2回答
JavaScript中的原型有问题吗?

在Felix的Node.js风格指南中提到: 不要扩展任何对象的原型,特别是本地对象。如果您不遵守此规则,那么地狱中有一个特殊的位置在等待着您。 这篇文章也让我对原型的用途产生了疑问。如果您将在代码后面添加方法,请为什么不直接将其添加到原始构造函数中呢? 那么,什么时候有必要扩展对象...

16得票3回答
__proto__,它何时会消失?有替代方案吗?

2008年左右,Mozilla声称将删除__proto__,但它仍然存在于浏览器中。它在Opera(我认为是Safari)和Chrome中也能正常工作。我不需要考虑IE,所以我很想继续使用它。 然而,我不希望有一天我的代码停止工作,因此提出我的问题: __proto__允许非常简单的继承:...

15得票2回答
使用 'instanceof function() {}' 的原因是什么?

在Mozilla Developer Center上,有一个关于Function.prototype.bind函数的页面,并提供了一个兼容性函数,用于不支持此函数的浏览器。 然而,在分析这个兼容性代码时,我无法理解为什么他们要使用instanceof nop。 nop 已经被设置为 func...

14得票4回答
将Javascript的getter/setter复制到另一个原型对象

// Base class var Base = function() { this._value = 'base'; }; Base.prototype = { constructor: Base, // By function getValue: funct...

14得票4回答
以一种不可检测/不可逆转的方式更改Window.prototype.open

我正在研究如何从扩展程序中扩展Firefox的弹出窗口拦截功能。其中一种选项是通过包装函数替换网页中的window.open()(或者更准确地说是Window.prototype.open())。一个重要的要求是,这种操作不能被网页检测或还原。例如,如果我只是这样做:Window.protot...

13得票2回答
在Javascript中向自定义对象添加方法

可能是重复问题: JavaScript中使用“prototype”与“this”的区别? 我访问了各种网站,但仍然不能理解添加自定义对象方法的以下两种方式之间的区别: 方法1:function circle(radius){ this.radius = radiu...

13得票3回答
[[Prototype]]和prototype:它们有什么区别?(MyCons.__proto__ === MyCons.prototype)等于FALSE。

看起来这里存在一个区别... 假设我们有function MyConstructor() {} MyConstructor的[[Prototype]]是Function.prototype,而不是MyConstructor.prototype. 用其他非标准/无法通过"console.l...

13得票8回答
如何在JavaScript中创建受保护的对象属性

有没有一种JavaScript模式可以模拟像C++等语言中看到的“Protected”对象属性?基本上,我想创建一个Object A,它具有许多“protected”对象属性,只能从定义在Object A的原型中的方法中访问。即 - 无法从A的非原型方法公开访问。例如,理想情况下应该是这样的:...