我正在尝试在我的应用程序中创建类似 jQuery 的架构,但我无法获得预期的结果。
在 jQuery 中“jQuery 对象实际上只是初始化构造函数'增强'”。
jQuery = function( selector, context ) {
return new jQuery.fn.init( selector, context, rootjQuery );
},
这意味着当您启动 jQuery 对象时;
$('selector')
jQuery 返回
new jQuery.fn.init( selector, context, rootjQuery );
jQuery 原型定义为;
jQuery.fn = jQuery.prototype = {
constructor: jQuery,
init: function( selector, context, rootjQuery ) {
var match, elem, ret, doc;
...
return jQuery.makeArray( selector, this ); // An array
}
...
size: function() {
return this.length;
},
...
jQuery 的所有有用属性和方法(如 hide()、show() exct.)都由 jQuery 对象的原型保存。
并将init方法的原型赋值为jQuery的原型;
jQuery.fn.init.prototype = jQuery.fn;
好!。我的问题是我尝试使用此架构,但无法获取返回值的属性和方法。
这是我的代码;
(function() {
Metinler = function(MetinKodu){
return new Metinler.sub.baslat( MetinKodu );
}
Metinler.sub = Metinler.prototype = {
metinKodlari: [],
constructor: Metinler,
topla: function(){
return this.metinKodlari[0] + this.metinKodlari[1];
},
baslat: function(MetinKodu) {
if($.isArray(MetinKodu) && MetinKodu.length > 0) {
this.metinKodlari = MetinKodu;
}else{
this.metinKodlari = (MetinKodu) ? [MetinKodu] : [''];
}
return this.metinKodlari;
}
}
Metinler.sub.baslat.prototype = Metinler.sub;
window.Metinler = Metinler;
})()