为了账号安全,请及时绑定邮箱和手机立即绑定

arr.join("_")与Array.prototype.join.call(arr,"_")有区别吗

arr.join("_")与Array.prototype.join.call(arr,"_")有区别吗

正在回答

5 回答

https://img1.sycdn.imooc.com//5bb43cf70001ccc403190161.jpg

https://img1.sycdn.imooc.com//5bb43cf700018bfb19201080.jpg

由图可以看出,两个方法是相等的,注意我用的是严格相等,但是当我用time去检查时发现,在原型上调用的的方法效率大大提高。所以就性能而言,一般使用原型调用。

2 回复 有任何疑惑可以回复我~

第一个是把数组转化为字符串的方法,第二个是把字符串转化为数组吧。。。。。。我是这样区分滴,不知准确不

0 回复 有任何疑惑可以回复我~

后者是指定的对象上没有join()方法,所以指定到Array.prototype 原型 ,使用call为其添加join方法,

通俗的讲 就是你没有这个技能,但是我(call)教授这个技能,你就有了。 小白理解,如有错误,请谅解指点

1 回复 有任何疑惑可以回复我~

arr.join这调用是错误的吧,-_-||,我测试了一下,是不行的。

Array.prototype.join.call(arr,"_")调用的是数组对象上的方法。

你可以试一下:

<script type="text/javascript">

var i='afhf';

console.log(i.join('-'));//显示i.join不是一个方法

var p='join' in String.prototype;//在字符串对象上也没找到join方法

console.log(p);

</script>

0 回复 有任何疑惑可以回复我~

结果是一样的。我觉得应该是一样的,arr.join调用的时候,其实在查找join方法的时候,也是在原型链上进行查找,在Array.prototype上找到join以后,进行调用。所以我觉得应该是一样的。

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

arr.join("_")与Array.prototype.join.call(arr,"_")有区别吗

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信