美文网首页
对JavaScript中 Function.prototype.

对JavaScript中 Function.prototype.

作者: Alex_insomnia | 来源:发表于2016-03-28 00:47 被阅读0次

今天在翻犀牛书,突然看到书中的一个例子中有这样一句代码 :
>this.buffer += Array.prototype.join.call( arguments, "" );
看到call,我突然就想起来他是用来改变函数内部this指向的,但是具体call的用法却有点模糊了,所以又温习了一下call的用法,又多了一点粗浅的体会。

call方法的语法是这样的
>fun.call(thisArg[,arg1[,arg2[,...]]])
其中thisArg就是改变fun中this指向的关键,他可以是任意JavaScript对象,后面每个值都用逗号隔开,作用是指定函数的参数。

现在回到上面的代码中来看,这段代码是写在函数内的语句,简单分析下就是让函数的参数形成的类数组对象 arguments,具有array原生的方法join(), 反过来说就是把 array中join方法执行上下文指向 arguments。

下面代码也是同理:
>var domNodes = Array.prototype.slice.call(document.getElementsByTagName("*"));

相关文章

网友评论

      本文标题:对JavaScript中 Function.prototype.

      本文链接:https://www.haomeiwen.com/subject/pgxpcttx.html