时刻注意this指向的是类本身,还是类的实例。
第一个示例会提示 stack overflow at line:14
第二个示例运行良好。
<!DOCTYPE html>
<html>
<head>
<title>工厂方法</title>
<script type="text/javascript">
/*
var $ = jQuery = function(){
return new jQuery;
};
jQuery.fn = jQuery.prototype = {
jQuery:"1.7.4",
size:function(){
return this.length;//$()实例化时,由于new jQuery的实例化,所以本次this指向实例,而不是类本身;时刻注意this指向的是类本身,还是类的实例
}
}
alert($().jQuery);
*/
var $ = jQuery = function(){
return jQuery.fn.init();//即返回原型本身
}
jQuery.fn = jQuery.prototype = {
init:function(){
//return new jQuery;
return this;//原型本身,即jQuery.fn
},
jquery:'1.7.4',
size:function(){
return this.length;//this 指向??
}
}
alert($().jquery);//原型的一个实例$()
alert($().size());
</script>
</head>
<body>
</body>
</html>
第一个示例会提示 stack overflow at line:14
第二个示例运行良好。
<!DOCTYPE html>
<html>
<head>
<title>工厂方法</title>
<script type="text/javascript">
/*
var $ = jQuery = function(){
return new jQuery;
};
jQuery.fn = jQuery.prototype = {
jQuery:"1.7.4",
size:function(){
return this.length;//$()实例化时,由于new jQuery的实例化,所以本次this指向实例,而不是类本身;时刻注意this指向的是类本身,还是类的实例
}
}
alert($().jQuery);
*/
var $ = jQuery = function(){
return jQuery.fn.init();//即返回原型本身
}
jQuery.fn = jQuery.prototype = {
init:function(){
//return new jQuery;
return this;//原型本身,即jQuery.fn
},
jquery:'1.7.4',
size:function(){
return this.length;//this 指向??
}
}
alert($().jquery);//原型的一个实例$()
alert($().size());
</script>
</head>
<body>
</body>
</html>