我正在尝试以下方法:
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
谢谢!
答案 0 :(得分:1)
extend的第一个参数应该是扩展Class1以包含Class2属性的目标。所以,你应该这样做:
var c;
jQuery.extend(c, Class1, Class2);
除非您真的打算进行深层复制,否则第一个参数应为true,然后是目标,然后是类:
jQuery.extend(true, c, Class1, Class2);
答案 1 :(得分:0)
答案 2 :(得分:0)
我正在使用
Class2 = $.extend(true,{},Class1,Class2);
我有同样的方法问题,仅在IE8中找不到。 Firefox 3.6与Opera 10完全相同。
除了一切之外,错误是不一致的。当我刷新页面时,我可能会再次遇到问题。
我认为在我的情况下,它可能与我的脚本加载方式有关。但仍然...... IE再次造成问题。