base.js
var $ = function ()
{
return new Base();
}
//创建一个数组,来保存获取的节点和节点数组*****************
function Base() {}
Base.prototype.elements = [];
//创建一个数组,来保存获取的节点和节点数组****************
function Base()
{
this.elements = [];
}
//获取ID节点
Base.prototype.getId = function (id) {
this.elements.push(document.getElementById(id));
return this;
};
//获取元素节点
Base.prototype.getTagName = function (tag) {
var tags = document.getElementsByTagName(tag);
for (var i = 0; i < tags.length; i ++) {
this.elements.push(tags[i]);
}
return this;
};
以上****号处这两种写法有什么不同,为什么测试获取的数组的值不一样
html代码
段落
段落
段落
demo.js
window.onload = function ()
{
$().getId('box').css('color','red');
alert($().getTagName('p').elements.length);
};
结果:把数组定义在函数体内(*处位置的不同)得到是3,而通过prototype方式,获得数组的长度确实4,这是怎么回事???