3

我认为Function对象是 JavaScript 中的唯一实例。所有其他的function(){...}var xx=function(){...}都是从这个对象继承的Function对象。那是基于原型的语言特性。并且在基于原型的语言中没有Class,它的优点之一是对象可以随时更改。例如添加方法或向其中添加属性。所以,我认为我们可以将其视为object键值集合。您可以在创建后随时将项目添加到其中。(如果我错了,请纠正我。)

假设你有代码:

        Function.test=function(){
            alert(Function.name);//"Function"  
            alert(Function.myName);//"fun"
        };
        Function.name="fun";
        Function.myName="fun";
        Function.test();

在上面的代码中,我要做的就是test向对象添加一个方法Function。这段代码没有发现错误。但是为什么Function.name不能改变呢?

4

2 回答 2

1

MDN 的一个页面指出函数的名称不能更改,因为它是只读的。

于 2013-04-22T06:20:56.440 回答
1

首先这个属性不标准。这意味着不同的浏览器可能会按照自己的意愿对待它。第二件事是,根据 MDN,它是只读的。

于 2013-04-22T06:30:16.217 回答