你明白了call和apply就自然明白了这一句:Array.prototype.slice.call这句用在arguments上比较常见<script type="text/javascript">//<![CDATA[
  void function fn() {
a = Array.prototype.slice.call(arguments,0);
alert(a);
}(1,2,3,4,5,6,7,'never-online.net/blog')
//]]></script>因为arguments不是数组,所以不能直接调用slice方法。用call和apply也就是要“打破”这种情况。
call/apply都可以改变scope。看一个例子就行了。<script type="text/javascript">//<![CDATA[
function classA() {
this.name='bluedestiny';
this.show = function () {
alert(this.name);
}
}
function classB() {
this.name = 'never-online';
}var objA = new classA();
var objB = new classB();objA.show.call(objB);
//]]></script>