我有一些代码,其中一个文件中有“var Signature”(文件A)。并且在同一文件A中创建一个方法“Signature.prototype.PreSaveSignature = ..”。 然后在第二个文件(文件B)中,创建相同的方法“Signature.prototype.PreSaveSignature = ..”。
现在在IE8及以下它执行文件B中的方法...而在IE9中它执行文件A中的方法。怎么样?使用原型有两个同名的方法是否有正当理由?
答案 0 :(得分:2)
在相同名称的同一原型上不能有两种不同的方法。最后定义的那个将用于将来创建的对象。您可以将Signature.prototype.PreSaveSignature
视为方法指针的存储槽。它只能保存一个值,最后一个分配给该存储槽的值是用于签名Signature()
对象的值。
如果您在不同的浏览器中获得不同的行为,那可能是因为您在一个浏览器中遇到的错误与另一个浏览器中的错误不同,或者您在不同的浏览器中获得了动态加载的不同加载和执行时间。