0

我有一些代码,其中一个文件(文件 A)中有一个“var Signature”。并且在同一个文件 A 中创建了一个方法“Signature.prototype.PreSaveSignature = ..”。然后在第二个文件(文件 B)中,创建相同的方法“Signature.prototype.PreSaveSignature = ..”。

现在在 IE8 及更低版本中,它执行文件 B 中的方法……而在 IE9 中,它执行文件 A 中的方法。如何?使用原型有两个同名的方法有什么正当理由吗?

4

1 回答 1

2

同一个原型上不能有两个不同的方法同名。最后定义的那个将对将来创建的对象起作用。您可以将其Signature.prototype.PreSaveSignature视为方法指针的存储槽。它只能保存一个值,最后分配给该存储槽的值就是将用于签名Signature()对象的值。

如果您在不同的浏览器中遇到不同的行为,那是因为您在一个浏览器中遇到了不同的错误,或者您在不同的浏览器中获得了不同的加载和执行时间以及动态加载的内容。

于 2012-08-31T06:54:20.477 回答