【发布时间】:2018-10-21 08:20:28
【问题描述】:
function1().function2();
如何定义一个这样调用的函数?
【问题讨论】:
function1().function2();
如何定义一个这样调用的函数?
【问题讨论】:
除了其他答案之外,您通常会在编写流畅的接口时执行此操作,您将返回父对象以允许方法链接,您可以这样做:
var calculator = (function() {
var i = 0;
var public = {};
public.add = function(a) { i += a; return public; }
public.sub = function(a) { i -= a; return public; }
public.equals = function() { return i; }
return public;
})();
console.log(calculator.add(2).sub(3).add(20).equals());
【讨论】:
这里有一个工作示例,您可以调用function1 并将对象映射到您想要的功能。
function function1() {
return {
function2: f2
}
}
function f2() {
return "do something";
}
console.log(function1().function2())
【讨论】:
您需要function1 才能返回具有function2 属性的对象。例如:
function f1() {
return {
f2() {
console.log('foo');
}
};
}
f1().f2();
【讨论】:
fn1().fn2().fn1()...