var $ = function (selector) {
return new $.prototype.init(selector);
};
$.prototype = {
init: function (selector) {
this.el = document.querySelector(selector);
console.log(this)
return this;
},
on: function (event, fn) {
if (window.addEventListener) {
this.el.addEventListener(event, fn, false);
} else if (window.attachEvent) {
this.el.attachEvent(on + event, fn);
}
return this;
},
attr: function (event, val) {
if (!val) {
return this.el.getAttribute(event);
} else {
this.el.setAttribute(event, val);
return this;
}
}
}
$.prototype.init.prototype = $.prototype;
3 回答
hahhhha
TA贡献50条经验 获得超32个赞
由于所有对象都会继承其原型对象的属性和方法,所以我们可以让定义在原型对象中的那些方法都返回用以调用方法的实例对象的引用,这样就可以对那些方法进行链式调用了。
return this;
使用回调函数从支持链式调用的方法获取数据。链式调用很适合赋值器方法,但对于取值器方法,你可能希望他们返回你要的数据而不是this(调用该方法的对象).解决方案:利用回调技术返回所要的数据.
添加回答
举报
0/150
提交
取消