<分区>
据我所知(在 Google Chrome 控制台中),我们可以更改预定义函数的定义。让我通过代码来解释:
function alert(){
return 2+2;
}
我正在调用 alert("hi")
,它返回 4,没关系,正如我们定义的那样。
但是,即使我调用 window.alert("hi")
,它也会返回 4,这出乎我的意料。
这里我只是创建了一个新函数,我没有提到任何object name 或Prototype 属性,但它仍然覆盖了window对象属性本身。
我的疑问是,如果我们改变函数的定义,它会不会覆盖所有对象中同名函数的定义??
假设我有两个对象 objA
和 objB
,它们都有一个名为 strange()
的函数。现在我在这两个对象的外部定义了一个函数 strange() 。那么,是否会覆盖objA
和objB
中strange()
的定义呢?如果是这样,为什么?
如果是这样,如何防止这种情况发生?意味着如何防止覆盖所有对象?
提前致谢...!!!!