以下 Javascript 代码没有预期的效果:
Function.prototype = {test: "foo"}
Function.prototype 显然没有被赋值改变(至少在 Firefox 上)。为什么是这样?有没有办法覆盖它?
以下 Javascript 代码没有预期的效果:
Function.prototype = {test: "foo"}
Function.prototype 显然没有被赋值改变(至少在 Firefox 上)。为什么是这样?有没有办法覆盖它?
从规格:
15.3.3.1 Function.prototype
的初始值
Function.prototype
是标准的内置函数原型对象(15.3.4)。该属性具有属性 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }。
关于[[Writable]]的部分:
如果
false
是,ECMAScript 代码尝试使用 [[Put]] 更改属性的 [[Value]] 属性将不会成功。