jQuery.extend 无法在 Internet Explorer 中运行,但可以在 Firefox 中运行
我正在尝试以下操作:
var Class1 = function() {}
Class1.prototype = {
MyMethod: function() { /* Do Stuff */ }
}
var Class2 = function() {}
Class2.prototype = {
AnotherMethod: function() { /* Do More Sweet Stuff */ }
}
jquery.extend(true, Class1, Class2);
我现在应该期望能够执行以下操作:
var c = new Class1();
c.AnotherMethod();
在 Firefox 3.6 中,这工作得很好。在 Internet Explorer 7 和8 它说“对象不支持此属性或方法”。
我是否误解了 $.extend 应该如何工作,或者 IE 表现不佳?
jQuery 版本:1.3.2
谢谢!
I am attempting the following:
var Class1 = function() {}
Class1.prototype = {
MyMethod: function() { /* Do Stuff */ }
}
var Class2 = function() {}
Class2.prototype = {
AnotherMethod: function() { /* Do More Sweet Stuff */ }
}
jquery.extend(true, Class1, Class2);
I should now expect to be able to do the following:
var c = new Class1();
c.AnotherMethod();
In Firefox 3.6 this works just fine. In Internet Explorer 7 & 8 it says "Object doesn't support this property or method".
Am I misunderstanding how $.extend should work, or is IE behaving badly?
jQuery Version: 1.3.2
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
extend 的第一个参数应该是扩展 Class1 以包含 Class2 属性的目标。因此,您应该这样做:
除非您确实打算进行深层复制,在这种情况下,第一个参数应该为 true,然后是目标,然后是类:
The first parameter to extend should be the target of extending Class1 to include Class2's properties. So, you should instead do:
Unless you truly were intending to do a deep copy, in which case the first parameter should be true, and then the target, followed by the classes:
这就是您所需要的。现在
Class1
应该已经用Class2
的属性进行了扩展,检查 jQuery.extend 文档
This is all you need. Now
Class1
should have been extended with the properties ofClass2
Check jQuery.extend documentation
我正在使用
并且我有同样的问题,方法仅在 IE8 中找不到。 Firefox 3.6 对于 Opera 10 来说非常好。
最重要的是,错误是不一致的。当我刷新页面时,我可能会或不会再次遇到问题。
我认为就我而言,这可能与我的脚本加载方式有关。但仍然.... IE 再次引发问题。
I am using
And i have same issue of method not found only in IE8. Firefox 3.6 is great same for Opera 10.
On top of everything, the error is inconsistent. When i refresh the page i might or not get the problem again.
I think that in my case it could be related to the way my script are loaded. But still.... IE is causing problem... again.