課程
/前端開發(fā)
/JavaScript
/JavaScript深入淺出
foo(x,y,z){'use strict';arguments[0]=10;console.log(x);?}foo(1,2);輸出x的值不是應(yīng)該為1嗎?課件上的輸出為10是為什么呢?
2016-12-06
源自:JavaScript深入淺出 7-4
正在回答
因為argumnets[0] 就是第一個參數(shù),即x
ZTON
請問你是3426834 提問者 回復 ZTON
在嚴格模式下,arguments變成了靜態(tài)副本,和傳入的參數(shù)沒有綁定關(guān)系了,但是如果傳入的參數(shù)是對象的話,修改arguments屬性是會對傳入?yún)?shù)屬性會影響。比如:
'use strict';!function(a){arguments[0].x = 100; console.log(a.x);//100 ?因為在嚴格模式下,如果傳入的參數(shù)是對象的話,修改arguments屬性是會對傳入?yún)?shù)屬性會影響的}(x:1);
慕碼人1183263
舉報
由淺入深學習JS語言特性,且解析JS常見誤區(qū),從入門到掌握
4 回答初學JavaScript用DW沒問題吧.
3 回答JavaScript
1 回答javascript
1 回答forEach參數(shù)問題
2 回答JavaScript編輯器
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-12-06
因為argumnets[0] 就是第一個參數(shù),即x
2017-03-27
在嚴格模式下,arguments變成了靜態(tài)副本,和傳入的參數(shù)沒有綁定關(guān)系了,但是如果傳入的參數(shù)是對象的話,修改arguments屬性是會對傳入?yún)?shù)屬性會影響。比如:
'use strict';
!function(a){
arguments[0].x = 100;
console.log(a.x);//100 ?因為在嚴格模式下,如果傳入的參數(shù)是對象的話,修改arguments屬性是會對傳入?yún)?shù)屬性會影響的
}(x:1);