Javascript JQuery插件类不工作
我正在开发一个JQuery插件。我需要在插件中使用OOP。然而,这门课并不像我想象的那样好。当我启动这个类的一个新实例时,只有它的第一行代码在执行。这段代码有什么问题,如何在初始化时执行这个类的构造函数Javascript JQuery插件类不工作,javascript,jquery,class,oop,plugins,Javascript,Jquery,Class,Oop,Plugins,我正在开发一个JQuery插件。我需要在插件中使用OOP。然而,这门课并不像我想象的那样好。当我启动这个类的一个新实例时,只有它的第一行代码在执行。这段代码有什么问题,如何在初始化时执行这个类的构造函数 (function ($) { var FunClass; FunClass = function () { console.log("FunGlobal"); function FunClass() { console.log("FunConstruct
(function ($) {
var FunClass;
FunClass = function () {
console.log("FunGlobal");
function FunClass() {
console.log("FunConstructor");
}
FunClass.prototype.letsFun = function () {
console.log("FunMethod");
}
}();
$.fn.fun = function () {
var funClass;
return this.each(function () {
funClass = new FunClass();
funClass.letsFun();
});
};
}(jQuery));
以下是控制台输出:
谢谢您的帮助。您似乎忘记返回
FunClass
:
(函数($){
var函数类;
FunClass=(函数(){
控制台日志(“FunGlobal”);
函数FunClass(){
log(“FunConstructor”);
}
FunClass.prototype.letsFun=函数(){
console.log(“FunMethod”);
}
return FunClass;//您错过了这一行
})();
$.fn.fun=函数(){
var函数类;
返回此值。每个(函数(){
funClass=新的funClass();
funClass.letsFun();
});
};
}(jQuery));
//用法
$(函数(){
$('body').fun();
});代码>
似乎您忘记返回函数类了:
(函数($){
var函数类;
FunClass=(函数(){
控制台日志(“FunGlobal”);
函数FunClass(){
log(“FunConstructor”);
}
FunClass.prototype.letsFun=函数(){
console.log(“FunMethod”);
}
return FunClass;//您错过了这一行
})();
$.fn.fun=函数(){
var函数类;
返回此值。每个(函数(){
funClass=新的funClass();
funClass.letsFun();
});
};
}(jQuery));
//用法
$(函数(){
$('body').fun();
});代码>
如何启动该类的新实例?让我们明确一点,您没有类-您有一个函数,它是一个对象。对象的所有方法都应该在函数的原型上声明,而不是写入构造函数本身的主体中。有这样一种方法(节点和树)。正如您所说的@ScottMarcus,我应该声明原型上的所有方法吗?那么我应该如何调用这个类的构造函数?如何初始化这个类的一个新实例?让我们在这里澄清一下,你没有一个类-你有一个函数,它是一个对象。对象的所有方法都应该在函数的原型上声明,而不是写入构造函数本身的主体中。有这样一种方法(节点和树)。正如您所说的@ScottMarcus,我应该声明原型上的所有方法吗?那么我应该如何调用这个类的构造函数呢?