美文网首页
javascript 链式语法

javascript 链式语法

作者: Moment929 | 来源:发表于2023-03-17 01:00 被阅读0次

jquery 链式语法如何实现,底层代码?

$("#Test").css('color','red').show(200).removeClass('style');

上面例子就是链式操作,为id=test 的对象进行三项操作;

链式调用的原理
在对象上的方法最后 加上return this
把对象再返回回来,对象就继续调用方法了,所以就可以链式操作了。

var obj={};
obj.a=function(){
    console.log("a")
    return this
}
obj.b=function(){
    console.log("n")
    return this
}
obj.a().b();
function add (num) {
    var count = num;
    var _b = function(l){
        count += l;
        return _b
    }
    _b.valueOf = function(){
        return count
    }
    return _b
}
var c = add(1)(2)(3);
console.log(c)    //6

下面我们来详细分析一下代码:
1.首先,在add方法内部,我们是通过私有的_b方法实现的加法,而不是在add方法自身实现的,这里涉及到了函数式编程,这个概念我们就不在此做展开了,有兴趣的童鞋可以自己研究一下,可以说这是一种很不错的开发模式;add第一次执行后,返回了_b方法
2.在返回的_b方法中我们形成了对count的闭包,这样我们可以实现累计加和;还有一点需要注意,就是_b方法每次执行时都返回了它自身,这就实现了链式
3.最后,也是比较关键的,就是在输出add的结果,即add(1)(2)(3)的结果时,如何让它输出count,这里涉及了valueOf和toString方法的知识,还是那句话,感兴趣的童鞋可以自己研究一下;在这里最后能够正确输出6的原理是:_b是Function,是Object的一种特殊形式,当我们做类似打印console等操作时,会自动调用其valueOf方法(其实底层实现没有我说的这么简单,哈哈,但是大概是这么个意思),所以我们重写了valueOf方法来达到返回count的目的

相关文章

  • Objective-C实现链式编程语法(DSL)

    Objective-C实现链式编程语法(DSL) Objective-C实现链式编程语法(DSL)

  • 第一篇:链式语法实现分析

    引言 第三方自动布局框架 Masonry 的出现,是链式语法的鼻祖,也让我们见识到链式语法的魅力! 那么链式语法是...

  • 链式语法学习

    为什么要写一个链式语法的库 最近看了 JHChainableAnimations 和 Masonry 觉得链式语法...

  • Underscore.js 源码解读之链式语法

    链式语法写法 我们调用多个 Underscore 的方法。可能会这么写: 用 Underscore 的链式语法来简...

  • JavaScript链式调用实例

    这篇文章主要介绍了JavaScript链式调用,结合实例形式分析了javascript链式调用的相关原理、实现方法...

  • Objective-C 链式编程简单实现

    链式编程 链式编程,其实就是通过.点语法将多行代码链接成一句代码,书写简洁、可读性好,但代码语法苦涩难懂。关于链式...

  • 链式语法

    masonry里面自动布局使用的.top().bottom();就是链式语法 (BaseViewControlle...

  • 链式语法

    谈到链式编程,那Masonry几乎就是最经典的代表: make.top.equalTo(self.view).of...

  • Swift链式调用的安全性

    文中引用到的:SnapKitAlamofireBees 链式语法在开发很常见。iOS上的许多开源库都使用了链式语法...

  • 在Objective-C中实现链式语法

    其他语言比如 Lua, 实现链式语法很容易。但在 Objective-C 中,如何实现链式语法呢? 注:这里讨论的...

网友评论

      本文标题:javascript 链式语法

      本文链接:https://www.haomeiwen.com/subject/tonqkqtx.html