[英]Approach to passing named arguments to a JavaScript Function. Any problems?
[英]Passing a named function in Javascript
如何在不調用參數的情況下傳遞帶參數的命名函數。
現在我唯一的解決方案似乎是一個黑客,但它是傳遞一個未命名的函數,它將調用命名函數。
callback(function(){foo(params);})
有沒有更好的方法呢?
不,有幾種方法可以做到,但你擁有它的方式是最受歡迎的。 我知道它感覺很亂,但就是這樣。
你也可以這樣做
callback(foo.bind(this, params));
你現在擁有的代碼,它將調用包裝在另一個匿名函數中是完全正常的,並且是Javascript中廣泛使用的模式。
如果要刪除匿名函數,可以使用bind()
方法對函數的引用。 試試這個:
callback(foo.bind(this, params));
您也可以只傳遞該函數並使用Javascript apply
/ call
函數
callback(myFunc);
其中回調定義為:
function callback(func, params) {
func.apply(null, params);
}
有關更多詳細信息,請參閱MDN Here中的Apply方法文檔
您的函數應分配給范圍變量。 您可以使用該變量傳入它。
var func = function(){ foo(params); }
callback(func);
如果你只是想直接調用foo,那就把它傳入。
callback(foo);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.