我已经在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。
答案 0 :(得分:2)
您在寻找
吗?var a = function a() {
// ...
}.bind(this);
?您不能在函数声明语句的上下文中将函数用作表达式;语法只是不允许它。但是,通过在表达式中实例化函数并将引用赋值给局部变量,您可以获得与函数声明语句非常相似的效果,如上所述。执行此操作时,您的函数将在表达式的上下文中实例化,因此将其用作调用.bind()
的对象库可以正常工作。