《JavaScript设计模式》——1.10 可以链式添加吗

本节书摘来自异步社区《JavaScript设计模式》一书中的第1章,第1.10节,作者:张容铭著,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.10 可以链式添加吗

“呀,这种方式很奇特呀。不过我想链式添加方法,是不是在addMethod中将this返回就可以呀,这么做可以么?”

Function.prototype.addMethod = function(name, fn){
  this[name] = fn;
  return this;
}

“当然,所以你再想添加方法就可以这样了:”

var methods = function(){};
methods.addMethod('checkName', function(){
  // 验证姓名
}).addMethod('checkEmail', function(){
  // 验证邮箱
});

“那么,小白,我问你,我如果想链式使用你知道该如何做么?”

小白想了想说:“既然添加方法的时候可以将this返回实现,那么添加的每个方法将this返回是不是可以实现呢?”

于是小白这么写下:

var methods = function(){};
methods.addMethod('checkName', function(){
  // 验证姓名
  return this;
}).addMethod('checkEmail', function(){
  // 验证邮箱
  return this;
});

然后测试一下:

methods.checkName().checkEmail();
“真的可以呀!”小白兴奋地说。

上一篇:《HTML5+CSS3网页设计入门必读》——第1章 理解Web的工作方式1.1 HTML和WWW简史


下一篇:【Android】Android动态代理为SurfaceHolder添加Hook