绑定,调用和直接应用函数签名调用
我已经在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,调用或绑定一个函数而不会丢失范围。
你在找什么
var a = function a() { // ... }.bind(this);
? 函数声明语句的上下文中不能使用函数作为expression式; 语法只是不允许它。 但是,通过在expression式中实例化函数并将引用分配给局部variables,您可以获得与函数声明语句非常相似的效果,如上所述。 当你这样做的时候,你的函数是在expression式的上下文中实例化的,所以把它作为一个对象来调用.bind()
工作正常。