图片上传不了,老出错;就只能复制啦!
这个是我自己构造的对象,用console.log输出看到是这样;
foo.fn.foo.init {0: div, 1: div, 2: div, 3: div, 4: div, selector: "div", init: function, aouth: "jer", age: 24, add: "江西"…}
jquery对象用console.log输出像一个数组;
[div, div, div, div, div, prevObject: b.fn.b.init[1], context: document, selector: "div", jquery: "1.9.1", constructor: function…]
想知道它是怎么实现的,下面是我写的源码;
(function(){
function foo(selector){
return new foo.prototype.init(selector);
};
foo.fn = foo.prototype= {
init : function(selector){
var elems = document.getElementsByTagName(selector),
len = elems.length,
i = 0;
for(;i < len;i++){
this[i] = elems[i];
};
this.selector = selector
return this;
},
aouth:'jer',
age: 24,
add :'江西'
};
foo.prototype.init.prototype = foo.prototype;
foo.fn.sayName = function(){
return this;
};
foo.fn.sayAdd = function(){
return this;
};
window.foo = foo;
})();
//console.log(foo);
var selects = foo('div');
console.log(selects);
这个其实不难,典型的 Ducking Type 应用。一个 Javascript 对象,只要定义了
length
属性和splice
方法,它看起来就像一个数组。例如: