Javascript 是否使用window prototype覆盖所有窗口的window.print()?

Javascript 是否使用window prototype覆盖所有窗口的window.print()?,javascript,prototype,Javascript,Prototype,在使用Javascript时,我尝试修改对象原型 对于String.toString(),这是有效的: var testString = "Test"; testString.toString(); // returns "Test" String.prototype.toString=function(){return "modified :-)";} testString.toString(); // now returns "modified :-)" 但是,这不起作用: Window.

在使用Javascript时,我尝试修改对象原型

对于
String.toString()
,这是有效的:

var testString = "Test";
testString.toString(); // returns "Test"
String.prototype.toString=function(){return "modified :-)";}
testString.toString(); // now returns "modified :-)"
但是,这不起作用:

Window.prototype.print=function(){
    console.log("disabled");
}
window.print(); // still opens the print dialog
为什么这不起作用?
window.print()
有什么特别之处吗?或者是
窗口
很特别

注意:

这似乎只发生在Firefox中(在V40上测试)。在Chrome和Internet Explorer中,
window.print()
按预期禁用


这是Firefox的bug还是设计的?

我找不到任何官方文档,但似乎
window.print()
方法在FF内部受到保护

但是,如果您不愿意使用
原型
,则以下内容在Chrome和FF中可以正常工作(但未在IE中测试):


似乎在为我工作?奇怪。。。我在Chrome和IE中也能用,但在Firefox中不行。问题已编辑。覆盖
窗口上的
toString
方法。prototype
似乎只适用于Firefox<代码>窗口可能有一些不可重写的行为。顺便说一句,在firefox控制台(ctrl+shift+K)上,print=function(){…}总是可以执行
window.print,它会给出错误:
“TypeError:window.prototype未定义”
是的,我知道我可以直接覆盖
window.print
。我特别好奇为什么它不能通过原型工作。无论如何,谢谢你的回答。但是,这不会覆盖打印命令或ctrl-p的行为。
window.print = function()
{
    console.log('disabled');
}

window.print();