JS链式编程


关于链式编程最典型的就是jQuery(虽然我们现在已经很少直接使用jQuery),我们可以通过jQuery完成一系列的链式操作,使编程的流程更加清晰。所谓的链式编程就是可以通过"点"语法,将需要执行的代码块连续的书写下去,使得代码简单易读,书写方便。ES6中的Promise也是使用了这个思想。

先来看一个例子

// 创建构造函数
function Person() { }
// 添加方法 setName
Person.prototype.setName = function (name) {
    this.name = name;
    return this
}
// 添加方法 setAge
Person.prototype.setAge = function (age) {
    this.age = age;
    return this
}
// 添加方法 speak
Person.prototype.speak = function () {
    console.log(this.name, this.age)
}
// 添加方法 getName
Person.prototype.getName = function (name) {
    return this.name
}


var per = new Person();
per.setName('cuiht').setAge('25').speak(); //打印 cuiht 25
console.log(per.getName());

大家也可以看出来,javascript的链式编程的核心就是return this;,在函数的最后加上这一句代码,我们就可以执行链式操作了。同时这里也暴露出来它的一个弱点在,某些方法里因为有值需要返回,不能返回this,就不能继续执行链式操作。

优点

1.代码变得简洁,优雅。2.链式操作实际上就是使得编程的流程更加清晰,不会像回调函数一样相互耦合,难以分辨函数的执行顺序且维护困难。

缺点

1.如同上面所说,javascript的链式编程的一个弱点,只能应用在不需要返回值的情况下或者只能最后一步需要返回值。2.过长的链式,会容易造成操作不明确,难以维护,不利于理解。

上有天,下有地,中间站着你自己,做一天人,尽一天人事儿。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值