<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>jQuery</title>
<script src="jquery.js"></script>
</head>
<body>
<div id="aaron">jQuery</div>
<script type="text/javascript">
(function(window, factory){
factory(window);
}(typeof window !== undefined ? window : this, function(window, noGlobal){
var $jQuery = function(selector, context){
return new $jQuery.fn.init( selector, context );
}
$jQuery.fn = $jQuery.prototype = {
init: function(){
this.name = "aa";
return this;
},
constructor: $jQuery
}
if(typeof noGlobal === "undefined"){
window.$jQuery = $jQuery;
}
return $jQuery;
}))
var a = $jQuery();
show(a.name);
function show(data) {
jQuery("body").append('<li>' + data + '</li>')
}
</script>
</body>
</html>
分离构造器
http://www.imooc.com/code/3398
var $$ = ajQuery = function(selector) { this.selector = selector; return this } ajQuery.fn = ajQuery.prototype = { selectorName:function(){ return this.selector; }, constructor: ajQuery } var a = new $$('aaa'); //实例化 console.log(a); var name = a.selectorName();//aaa //得到选择器名字 console.log(name);
改进,去掉new
ar $$ = ajQuery = function(selector) { console.log(this); if(!(this instanceof ajQuery)){ return new ajQuery(selector); } this.selector = selector; return this; } ajQuery.fn = ajQuery.prototype = { selectorName:function(){ return this.selector; }, constructor: ajQuery } var a = $$('aaa'); //实例化 console.log(a); var name = a.selectorName();//aaa //得到选择器名字 console.log(name);