課程
/前端開發(fā)
/JavaScript
/JavaScript深入淺出
arr.join("_")與Array.prototype.join.call(arr,"_")有區(qū)別嗎
2017-10-04
源自:JavaScript深入淺出 5-5
正在回答
由圖可以看出,兩個(gè)方法是相等的,注意我用的是嚴(yán)格相等,但是當(dāng)我用time去檢查時(shí)發(fā)現(xiàn),在原型上調(diào)用的的方法效率大大提高。所以就性能而言,一般使用原型調(diào)用。
第一個(gè)是把數(shù)組轉(zhuǎn)化為字符串的方法,第二個(gè)是把字符串轉(zhuǎn)化為數(shù)組吧。。。。。。我是這樣區(qū)分滴,不知準(zhǔn)確不
后者是指定的對(duì)象上沒有join()方法,所以指定到Array.prototype 原型 ,使用call為其添加join方法,
通俗的講 就是你沒有這個(gè)技能,但是我(call)教授這個(gè)技能,你就有了。 小白理解,如有錯(cuò)誤,請(qǐng)諒解指點(diǎn)
arr.join這調(diào)用是錯(cuò)誤的吧,-_-||,我測(cè)試了一下,是不行的。
Array.prototype.join.call(arr,"_")調(diào)用的是數(shù)組對(duì)象上的方法。
你可以試一下:
<script type="text/javascript">
var i='afhf';
console.log(i.join('-'));//顯示i.join不是一個(gè)方法
var p='join' in String.prototype;//在字符串對(duì)象上也沒找到j(luò)oin方法
console.log(p);
</script>
結(jié)果是一樣的。我覺得應(yīng)該是一樣的,arr.join調(diào)用的時(shí)候,其實(shí)在查找join方法的時(shí)候,也是在原型鏈上進(jìn)行查找,在Array.prototype上找到j(luò)oin以后,進(jìn)行調(diào)用。所以我覺得應(yīng)該是一樣的。
舉報(bào)
由淺入深學(xué)習(xí)JS語言特性,且解析JS常見誤區(qū),從入門到掌握
3 回答get與set的區(qū)別
1 回答bind,call,apply,的作用有區(qū)別嗎?
2 回答對(duì)象的class屬性如何理解,與typeof有何區(qū)別?
4 回答老師,這里的Object.creat和new有什么區(qū)別嗎
5 回答typeof和toString有什么區(qū)別
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2018-10-03
由圖可以看出,兩個(gè)方法是相等的,注意我用的是嚴(yán)格相等,但是當(dāng)我用time去檢查時(shí)發(fā)現(xiàn),在原型上調(diào)用的的方法效率大大提高。所以就性能而言,一般使用原型調(diào)用。
2017-11-21
第一個(gè)是把數(shù)組轉(zhuǎn)化為字符串的方法,第二個(gè)是把字符串轉(zhuǎn)化為數(shù)組吧。。。。。。我是這樣區(qū)分滴,不知準(zhǔn)確不
2017-10-22
后者是指定的對(duì)象上沒有join()方法,所以指定到Array.prototype 原型 ,使用call為其添加join方法,
通俗的講 就是你沒有這個(gè)技能,但是我(call)教授這個(gè)技能,你就有了。 小白理解,如有錯(cuò)誤,請(qǐng)諒解指點(diǎn)
2017-10-09
arr.join這調(diào)用是錯(cuò)誤的吧,-_-||,我測(cè)試了一下,是不行的。
Array.prototype.join.call(arr,"_")調(diào)用的是數(shù)組對(duì)象上的方法。
你可以試一下:
<script type="text/javascript">
var i='afhf';
console.log(i.join('-'));//顯示i.join不是一個(gè)方法
var p='join' in String.prototype;//在字符串對(duì)象上也沒找到j(luò)oin方法
console.log(p);
</script>
2017-10-04
結(jié)果是一樣的。我覺得應(yīng)該是一樣的,arr.join調(diào)用的時(shí)候,其實(shí)在查找join方法的時(shí)候,也是在原型鏈上進(jìn)行查找,在Array.prototype上找到j(luò)oin以后,進(jìn)行調(diào)用。所以我覺得應(yīng)該是一樣的。