在js中,function函数可以通过几种不同的方式来调用。
// 直接调用 function foo() { console.log('foo'); } foo(); // 输出 'foo'
上面的代码中,直接调用函数foo,即可获得函数的返回值。
// 作为函数参数 function foo() { console.log('foo'); } function bar(fn) { fn(); // 调用参数fn } bar(foo); // 输出 'foo'
上面的代码中,函数foo被作为参数传入函数bar,bar函数中可以直接调用传入的函数参数。
// 作为返回值 function foo() { console.log('foo'); } function bar() { return foo; } var fn = bar(); fn(); // 输出 'foo'
上面的代码中,函数foo被作为返回值返回,可以通过变量fn来调用。
// 作为对象的方法 var obj = { foo: function() { console.log('foo'); } }; obj.foo(); // 输出 'foo'
上面的代码中,函数foo被作为对象obj的方法,可以通过obj.foo()来调用。
// 作为构造函数 function Foo() { this.foo = function() { console.log('foo'); } } var f = new Foo(); f.foo(); // 输出 'foo'
上面的代码中,函数Foo被作为构造函数,可以通过new Foo()来调用,返回一个Foo的实例,通过实例的foo方法来调用函数。
// 作为闭包 function foo() { var bar = function() { console.log('bar'); } return bar; } var fn = foo(); fn(); // 输出 'bar'
上面的代码中,函数foo返回一个函数bar,bar函数可以通过变量fn来调用。
以上就是,可以根据不同的需求来选择最合适的调用方式。