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,那么要如何做?
jQuery原型
推荐阅读
- 子级float而父级div没高度的解决方法
- img标签的alt属性[使用HTML标签来显示文本而不是图像]
- 为何选择 wangEditor
- thinkphp6的一些用法
- 原生ajax分页,无刷新分页,最简化。超简单,代码最少
- xadmin下修改左道航的显示不是中文字修改方法
- 在Windows下忘记MySQL最高用户权限密码的解决方案
- 深入mysql_fetch_row()与mysql_fetch_array()的区别详解
- SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction 解决方法
- Linux系统下安装rz/sz命令及使用说明