jQuery原型

JavaScript中的原型对象(以下为示例,有错误。)

JavaScript通过为所有函数绑定一个prototype属性用来指向一个原型对象。此原型对象可以定义类继承、属性和方法

<Script >

var jQuery = function(){

jQuery.prototype = {//扩展的原型对象

}

}

</script>

更安全的作法是,定义一个属性

<Script >

var jQuery.fn = jQuery.prototype = {//扩展的原型对象

}

</script>

这里的jQuery.fn相当于jQuery.prototpye的别名。那么

var $ = jQuery = function(){}

给jQuery添加两个成员

var $ = jQuery = function (){

jQuery.fn = jQuery.prototype = {

jquery: "1.2.3", //原型属性

size: function(){ //原型方法

return this.length;

}

}

}

调用方法:

正常调用方法为:

var my$ = new $();//实例化

alert( my$.jquery );

alert( my$.size() );

但jQuery却如下:

$().jquery;

$().size();

即,jQuery没有使用new运算符将jQuery类实例化。实际在浏览器使用这段代码会报错。没有实例化,那么

var $ = jQuery = function(){

return new jQuery();

}

然而,仍然会报错,堆栈溢出。说明有死循环。那么:

使用一个工厂方法来创建一个实例,并把它放到prototype原型对象中,然后在构造函数中返回这个调用。

var $ = jQuery = function() {

return jQuery.fn.init();

}

jQuery.fn = jQuery.prototype = {

init: function(){

return this;

},

jquery:"1.2.4",

size: function(){

return this.length;

}

}

以上示例还是有错误,它并没有实例化jQuery,那么要如何做?