Window.prototype.confirm
和Window.confirm
的区别是什么?
我正在处理一个更改请求,其中说我们需要在确认消息框上有一个标题。我正在检查弹出确认窗口的代码。
在javascript中有对
的调用Window.prototype.confirm = function(arg){return false;};
负责弹出确认窗口
我在谷歌搜索有一个javascript函数像窗口。确认我们不能设置标题的地方,我们需要编写一些自定义javascript函数来做相同的
所以我只是想知道Window.prototype.confirm
和Window.confirm
是否相同,如果不是有什么不同?
你没有看到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
这与javascript的原生继承模型有关。
-
进入Window原型的确认方法
Window.prototype.confirm
-
你访问一个名为Window的实例的confirm方法
窗口。确认(注意小写w)
正如你所看到的,window是window的一个实例,这意味着如果你改变了window。确认您只针对此特定实例更改了它。Window的其他实例将具有原始功能。但是如果你改变了Window原型的confirm函数,那么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