我有一个使用大量回调的
JavaScript应用程序.一个典型的函数将采取一个回调,并用另一个回调来包装.
Namespace.foo = function( arg,their_on_success ) { var my_on_success = function( result ) { console.log( 'my_on_success() called' ); if( 'function' === typeof their_on_success ) { their_on_success( result ); } } something( arg,my_on_success ); };
给出上述示例,何时应该使用本机call()
方法(传递结果var作为第二个参数),而不是调用them_on_success()并通过函数调用传递结果?
解决方法
call()用来改变这个函数的值:
var obj = {a: 0}; method.call(obj,"parameter"); function method(para) { this.a == 0; // true <-- obj is now this }