0

以下 Javascript 代码没有预期的效果:

Function.prototype = {test: "foo"}

Function.prototype 显然没有被赋值改变(至少在 Firefox 上)。为什么是这样?有没有办法覆盖它?

4

1 回答 1

6

规格

15.3.3.1 Function.prototype

的初始值Function.prototype是标准的内置函数原型对象(15.3.4)。

该属性具有属性 { [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }。

关于[[Writable]]的部分:

如果false是,ECMAScript 代码尝试使用 [[Put]] 更改属性的 [[Value]] 属性将不会成功。

于 2013-09-23T06:00:21.393 回答