JavaScript中的函数对象

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();

在上面的代码中,我想做的就是向Function对象添加一个test方法。这段代码没有发现任何错误。但为什么无法更改Function.name

你是怎么定义Function()函数的? - Ishank
我不知道如何回答你的问题... Function 是 JavaScript 的内置对象。 - Joe.wang
2个回答

1

MDN页面指出,函数名称无法更改,因为它是只读的。


嗨,@Joseph the Dreamer,IE8可以更改它。它不是只读的。 - Joe.wang

1

首先,该属性不是标准的。这意味着不同的浏览器可能会根据自己的方式处理它。其次,根据 MDN 的说法,它是只读的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接