为了账号安全,请及时绑定邮箱和手机立即绑定

js链式写法没有懂 求详细解释一下

js链式写法没有懂 求详细解释一下

欧罗巴皇 2017-05-26 14:47:43
 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(调用该方法的对象).解决方案:利用回调技术返回所要的数据.

查看完整回答
反对 回复 2017-05-27
?
uhelper_net

TA贡献37条经验 获得超9个赞

链式写法,在调用的方法的函数里,返回对象(return this)即可实现.

查看完整回答
反对 回复 2017-05-26
  • 欧罗巴皇
    欧罗巴皇
    为什么它有些返回的不一样 有些就返回一个this 有些就整个一个语句
  • 3 回答
  • 0 关注
  • 1821 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信