作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
感谢阅读。
所以我正在开发我的第一个 node.js 应用程序。我对 javascript 比较熟悉,但还不够。
我已经声明了一个 FOO
类,其中包含一个名为 bars(index, value}
的方法,该方法接受 2 个参数。为了使用它,在创建实例后,我具有以下 fooInstance.bars(3, 2)
我想以不同的方式调用此方法。如何更改我的 FOO
定义,以便我可以像这样使用它 fooInstance.bars(3).value
?
我当前的代码如下
var util = require('util'),
events = require('events');
var FOO = function(opts) {
this.ipAddress = opts.ipAddress;
this.port = opts.port;
};
FOO.prototype = new events.EventEmitter;
module.exports = FOO;
FOO.prototype.bars = function (index, value) {
switch(index) {
case 1:
console.log("Apple " + " at " + value)
break;
case 2:
console.log("Banana, " + " at " + value)
break;
case 3:
console.log("Cherry, " + " at " + value)
break;
case 4:
console.log("Date, " + " at " + value)
break;
default:
break;
}
}
提前致谢!
最佳答案
它叫做 Method Chaining
或者有时 Fluent interface
. “链接”背后的主要思想是作为结果返回一个对象
(通常是self
),从而可以直接调用返回值。
我从 here 复制了一个示例代码(属性转到原作者)返回 self
作为返回值。
var obj = {
function1: function () {
alert("function1");
return obj;
},
function2: function () {
alert("function2");
return obj;
},
function3: function () {
alert("function3");
return obj;
}
}
obj.function1().function2().function3();
对于您的 FOO
实现,尝试在 bars
函数的末尾返回 this
。
FOO.prototype.bars = function(index,value){
// your previous code here;
this.value = value;
return this;
}
关于javascript - JS : How to do function. 函数(参数).函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24567391/
我是一名优秀的程序员,十分优秀!