Javascript,使用原型(prototype)定义两个同名的函数(跨两个不同的文件)

标签 javascript internet-explorer-8 internet-explorer-9 prototype

我有一些代码,其中一个文件(文件 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/

相关文章:

Javascript 在 localStorage 中存储字符串变量的实际名称而不是其值

javascript - Node.js、socket.io 和 base64-to-image 不工作

javascript - 在 IE8 中创建脚本标签

gridview - Yii Tbgridview 无法在 Ie8 中工作 - Bootstrap TbGridView 在排序、分页和过滤中消失 -IE8

javascript - $(this).val() 返回不正确的值 IE8

css - font-awesome 不能在 IE9 上工作?

javascript - 使用 JQuery 迭代到除第一列之外的表

javascript - redis 客户端和 Node js - hgetall 方法失败,结果为空

css 在 ie 9 中的错误行为

css - angularjs 评估范围内样式 ie9 不工作