函数链是一种编程技术,允许开发人员创建按特定顺序执行的操作序列。在 JavaScript 中,这是通过返回函数本身和使用 this 关键字相结合来实现的。
要了解链接的原理,让我们看一个工作示例:
var one = function(num) {
this.oldnum = num;
this.add = function() {
this.oldnum ;
return this;
}
if (this instanceof one) {
return this.one;
} else {
return new one(num);
}
}
var test = one(1).add().add();
在此示例中,one 函数是用数字构造的。它定义了一个 add 函数,该函数增加 oldnum 属性并返回它。 if 语句检查该函数是否被作为构造函数调用(使用 new),如果不是,则返回 one 的新实例。
表达式 one(1).add().add() 首先创建一个new 一个对象,初始值为 1。然后,在此对象上调用 add 函数两次,每次都会递增 oldnum 属性。最后,变量 test 保存结果,即 oldnum 设置为 3 的一个对象。
相比之下,以下示例没有正确链接:
var gmap = function() {
this.add = function() {
alert('add');
return this;
}
if (this instanceof gmap) {
return this.gmap;
} else {
return new gmap();
}
}
var test = gmap.add();
这里,gmap 函数不会在其方法中返回 this,因此链接被破坏。表达式 gmap.add() 试图调用 gmap 构造函数本身的 add 方法,这并不能按预期工作。
成功链接的关键是 this 关键字的使用,它指的是当前对象。通过从方法返回此值,调用者可以再次访问该对象并继续操作序列。
链接是在 JavaScript 中编写简洁且富有表现力的代码的强大技术。通过理解上述原则,开发人员可以有效地利用链接来增强其应用程序功能。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3