求解释,对于javascript 中的call函数的理解问题

call([thisObj[,arg1[, arg2[, [,.argN]]]]])

参数
thisObj

可选项。将被用作当前对象的对象。

arg1, arg2, , argN

可选项。将被传递方法参数序列。

说明
call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。

如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。

完全搞不懂 这个函数的意思 和使用方法

举个例子

我使用这个运算

<script language="javascript" type="text/javascript">
function myFun()
{

document.write(arguments + " ");
}

var myObject = new Object();
myFun.call(myObject,13,3,95);
</script>

答案结果是
[object Object]

我想问的是 myFun.call(myObject,13,3,95 )这几个参数 13,3,95是什么关系 它们之间 这个函数到底是怎么运行的
看那些书上的解释 看不懂
希望有高手 来帮忙解答

aluckdog
浏览 119回答 2
2回答

茅侃侃

call方法:语法:call([thisObj[,arg1[, arg2[, [,.argN]]]]])定义:调用一个对象的一个方法,以另一个对象替换当前对象。说明:call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。

慕哥9229398

标准解释:call方法是将一个对象的方法在另一个对象的上下文环境中执行。详细解释:你的例子中,myFun.call(myObject, 13, 3, 95)执行时是这样的:1. 调用myFun函数2. 将13,3,95三个参数传递给它(你的myFun方法中没有处理这些参数的代码,所以传了也没有用)3. 将myFun函数中的所有this用myObject代替(同样,你的myFun函数中没有使用this,所以执行结果和直接调用myFun()是一样的)修改一下你的例子,帮助你理解:function myFun(p1, p2, p3){this.para1 = p1;this.para2 = p2;this.para3 = p3;}var myObject = new Object();alert(myObject.para1) //显示undefinedmyFun.call(myObject,13,3,95); /*执行的时候,myFun方法中的this全部用myObject对象代替,所以在这个例子中,执行myFun方法和直接写下面的语句效果是一样的:myObject.para1 = 13;myObject.para2 = 3;myObject.para3 = 95;*/alert(myObject.para1) //显示13&nbsp;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript