<script language="javascript" type="text/javascript">

//使用冒泡法排序
function myFun()
{
var arrLength = arguments.length;
for (i=0;i<arrLength;i++)
{
for (j=arrLength;j>i;j--)
{
if (arguments[j]<arguments[j-1])
{
temp = arguments[j];
arguments[j] = arguments[j-1]
arguments[j-1] = temp;
}
}
}
for (i=0;i<arrLength;i++)
{
document.write(arguments[i] + " ");
}
}

var myObject = new Object();
myFun.call(myObject,13,3,95);


</script>
以上红色部分用myFun(13,3,95);替换效果不同吗?call()方法作用是什么?

解决方案 »

  1.   

    这里没有体现出call的主要作用
    眼拙,没看出来为什么要这么用,有上下文么
      

  2.   

    call 方法
    请参阅
    应用于:Function 对象
    要求
    版本 5.5
    调用一个对象的一个方法,以另一个对象替换当前对象。call([thisObj[,arg1[, arg2[,   [,.argN]]]]])
    参数
    thisObj 
    可选项。将被用作当前对象的对象。 
    arg1, arg2, , argN 
    可选项。将被传递方法参数序列。 
    说明
    call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。
      

  3.   

    call涉及到js的继承了
    myFun()函数有参数吗?看清楚点
      

  4.   

    我这个书就写了这么一小段,就把call的概念说完了,我被弄的很莫名其妙,就想,这就是多此一举,
    这个call具体用处不应该就这么点吧,如果就这个用处,完全没必要吧
      

  5.   

    call主要用来改变一个函数的作用域。也可以实现继承
    function f()
    {
    this.a = "a";
    }
    function b()
    {
    f.call(this);
    this.b = "b";
    }
    var c = new b();
    这时c就具有了属性a和b
      

  6.   

    call有助于实现一些oop写法...一般人用不到的...
      

  7.   

    在这段代码里,确实没有体现出call的作用~
      

  8.   

    看看对你帮助没有
    http://blog.csdn.net/lifeng_beijing/archive/2010/03/18/5393398.aspx