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

 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;


欧罗巴皇
浏览 1827回答 3
3回答

hahhhha

由于所有对象都会继承其原型对象的属性和方法,所以我们可以让定义在原型对象中的那些方法都返回用以调用方法的实例对象的引用,这样就可以对那些方法进行链式调用了。return this;使用回调函数从支持链式调用的方法获取数据。链式调用很适合赋值器方法,但对于取值器方法,你可能希望他们返回你要的数据而不是this(调用该方法的对象).解决方案:利用回调技术返回所要的数据.

uhelper_net

链式写法,在调用的方法的函数里,返回对象(return this)即可实现.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript