美文网首页
对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