alert和window.alert之间有什么区别?

44

alert()window.alert()函数有什么区别?它们看起来工作相同。

2个回答

56

由于 window 是全局对象,你可以通过它的简写方式调用 alertalert( 'Hello!' ); 或者通过明确地引用全局对象来调用:window.alert( 'Hello!' );

它们是一样的。


6
似乎这个代码 this.alert('Hello!'); 能够完成同样的工作。那么我猜全局变量应该是在 window 对象中。 - scdmb
window.addEventListener怎么样?我们能只写addEventListener吗? - arnaudambro
在遵循Eineki所提到的相同作用域问题的前提下,是的,你可以这样做。 - Kevin Boucher

36

它们通常是相同的东西,但是如果在你的范围内,看这个例子,alert函数被重新定义了,那么alert和window.alert将不会是同一个函数。

(function () {
    function alert(test) {
        document.write(test);
    }

    alert("hello page");
   window.alert("hello world");
})()

希望这个例子能比我的解释更能阐明这个主题。

你也可以使用变量来模拟函数名称,调用它时会出现错误。

(function () {
    var alert;
    alert("Why don't you work, silly function?");
})()

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