我有一些代码,其中一个文件(文件 A)中有一个“var 签名”。并在同一个文件 A 中创建一个方法“Signature.prototype.PreSaveSignature = ..”。 然后在第二个文件(文件 B)中,创建相同的方法“Signature.prototype.PreSaveSignature = ..”。
现在在 IE8 及以下版本中它执行文件 B 中的方法...而在 IE9 中它执行文件 A 中的方法。怎么样?使用原型(prototype)有两个同名的方法有什么正当理由吗?
最佳答案
同一个原型(prototype)上不能有两个具有相同名称的不同方法。最后定义的对象将对将来创建的对象起作用。您可以将 Signature.prototype.PreSaveSignature 视为方法指针的存储槽。它只能保存一个值,并且最后分配给该存储槽的值将用于签名 Signature()
对象。
如果您在不同的浏览器中得到不同的行为,那是因为您在一种浏览器中与另一种浏览器中遇到不同的错误,或者由于动态加载的内容在不同的浏览器中得到不同的加载和执行时间。
关于Javascript,使用原型(prototype)定义两个同名的函数(跨两个不同的文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12210194/