Window.prototype.confirm
和Window.confirm
之间的区别是什么?
我正在处理一个更改请求,说我们需要在确认消息框上有一个标题。我刚刚浏览了弹出此确认窗口的代码。
在javascript中有一个对
的调用Window.prototype.confirm = function(arg){return false;};
负责弹出确认窗口
我在谷歌搜索有一个像window.confirm这样的javascript函数,我们无法设置标题,我们需要编写一些自定义的javascript函数来做同样的事情
所以我只是在讨论Window.prototype.confirm
和Window.confirm
是否相同,如果没有,有什么区别?
答案 0 :(得分:2)
您还没有看到Window.confirm
,它是window.confirm
。
逐一在Chrome JavaScript控制台中键入以下行,这可能有助于阐明这一点。 (在>
之后键入部分,它将打印出您在下面看到的内容。)
> window.constructor
function Window() { [native code] }
> window.constructor === Window
true
> window.confirm === Window.prototype.confirm
true
> window.confirm = function() { alert('oops'); };
function () { alert('oops'); }
> window.confirm === Window.prototype.confirm
false
答案 1 :(得分:1)
它与JavaScripts本机继承模型有关。
您可以访问Window原型的确认方法。
Window.prototype.confirm
您可以访问Window命名窗口实例的confirm方法。
window.confirm(通知小写w)
正如您所看到的,window是Window的一个实例,这意味着如果您更改window.confirm,则仅为此特定实例更改了它。 Window的其他实例将具有原始功能。但是,如果您更改Window原型的确认功能,那么窗口的所有实例都将使用新实现。
使用自定义对象来说明。
function MyObject () {
}
MyObject.prototype.test = function () {
alert('A');
}
var myobj1 = new MyObject();
var myobj2 = new MyObject();
myobj1.test(); // alerts A
myobj2.test(); // alerts A
myobj1.test = function () { alert('B'); };
myobj1.test(); // alerts B
myobj2.test(); // alerts A
MyObject.prototype.test = function () { alert('C'); };
myobj1.test(); // alerts C
myobj2.test(); // alerts C