我有一个使用大量回调的
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
- }