我有一段代碼,它接受fn
作爲參數並將它存儲在object
屬性中。fn.apply(fn,[])做什麼?
var obj = {};
function anotherFn(fn){
obj["name"] = fn.apply(fn, []);
}
function google(){
console.log("hello");
}
anotherFn(google);
console.log(obj.name);
我不明白的是fn.apply(fn,[])
代碼及其目的。通常當我們想在不同的this/context
中執行fn
時,我們使用call
和apply
方法。
但是fn.apply(fn, [])
在這裏做什麼?混亂是爲什麼我不能只是做
obj["name"] = fn();
該調用**在不同的'this'上下文中執行'fn',這是函數對象本身。 – Pointy 2014-12-05 19:26:36
我會建議在生產中不要做這樣的事情。 – tengbretson 2014-12-05 19:56:35