CSDN-CSDN社区-Web 开发-JavaScript

收藏 Array.prototype.slice.call开个贴子!看看这玩意是什么东西!网上看到的不太明白。[问题点数:10,结帖人:fuda_1985]

  • fuda_1985
  • (说明文字变短了!倒地!!!)
  • 等 级:
  • 结帖率:
楼主发表于:2008-07-25 09:31:51
等着以后自己挖自己坟找资料!~
回复次数:3
  • xyq1986用户头像
  • xyq1986
  • (综艺一哥)
  • 等 级:
#1楼 得分:2回复于:2008-07-25 10:13:55
调用slice方法
#2楼 得分:6回复于:2008-07-25 10:53:49
你明白了call和apply就自然明白了这一句:Array.prototype.slice.call

这句用在arguments上比较常见
HTML code
<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。看一个例子就行了。
HTML code
<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>
#3楼 得分:2回复于:2008-07-25 11:00:50
BL经典