直接在函数签名上绑定,调用和应用

时间:2015-08-31 23:42:21

标签: javascript node.js

我已经在JS编程了大约一年,我发誓有一种方法可以做到这一点:

function a(){

}.bind(this);

function a(){

}.apply(this,null);

我可以这样做:

(function a(){
    console.log('b');
}).apply(null);

a(); //but this will throw an error

有没有办法做我想做的事情?我只想在不丢失范围的情况下调用函数的apply,call或bind。

1 个答案:

答案 0 :(得分:2)

您在寻找

吗?
var a = function a() {
  // ...
}.bind(this);

?您不能在函数声明语句的上下文中将函数用作表达式;语法只是不允许它。但是,通过在表达式中实例化函数并将引用赋值给局部变量,您可以获得与函数声明语句非常相似的效果,如上所述。执行此操作时,您的函数将在表达式的上下文中实例化,因此将其用作调用.bind()的对象库可以正常工作。