第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

callback.apply(obj[i], args)這樣寫有問題

如果這樣寫,在回調(diào)函數(shù)中,只有通過this去取值了,。應(yīng)該寫成callback.apply(obj[i], i, obj[i], args)

正在回答

3 回答

each:?function(obj,?callback,?args)?{????
					var?value,????
						i?=?0,????
						length?=?obj.length,????
						isArray?=?isArraylike(obj);?//?判斷是不是數(shù)組????
					//?傳了第三個參數(shù)????
					if?(args)?{????
						if?(isArray)?{????
							for?(;?i?<?length;?i++)?{????
								//?相當(dāng)于:????
								//?args?=?[arg1,?arg2,?arg3];????
								//?callback(args1,?args2,?args3)。然后callback里邊的this指向了obj[i]????
								value?=?callback.apply(obj[i],?args);????
								if?(value?===?false)?{????
									//?注意到,當(dāng)callback函數(shù)返回值會false的時候,注意是全等!循環(huán)結(jié)束????
									break;????
								}????
							}????
							//?非數(shù)組????
						}?else?{????
							for?(i?in?obj)?{????
								value?=?callback.apply(obj[i],?args);????
								if?(value?===?false)?{????
									break;????
								}????
							}????
						}????
						//?A?special,?fast,?case?for?the?most?common?use?of?each????
					}?else?{????
						//?數(shù)組????
						//?其實(shí)這里代碼有點(diǎn)贅余,如果考慮代碼的簡潔性犧牲一點(diǎn)點(diǎn)性能????
						//?在處理數(shù)組的情況下,也是可以用?for(i?in?obj)的????
						if?(isArray)?{????
							for?(;?i?<?length;?i++)?{????
								//?相當(dāng)于callback(i,?obj[i])。然后callback里邊的this指向了obj[i]????
								value?=?callback.call(obj[i],?i,?obj[i]);????
								if?(value?===?false)?{????
									break;????
								}????
							}????
							//?非數(shù)組????
						}?else?{????
							for?(i?in?obj)?{????
								value?=?callback.call(obj[i],?i,?obj[i]);????
								if?(value?===?false)?{????
									break;????
								}????
							}????
						}????
					}????
					return?obj;????
				},


0 回復(fù) 有任何疑惑可以回復(fù)我~
each: function(obj, callback, args) {

var value,

i = 0,

length = obj.length,

isArray = isArraylike(obj); // 判斷是不是數(shù)組



// 傳了第三個參數(shù)

if (args) {

if (isArray) {

for (; i < length; i++) {

// 相當(dāng)于:

// args = [arg1, arg2, arg3];

// callback(args1, args2, args3)。然后callback里邊的this指向了obj[i]

value = callback.apply(obj[i], args);



if (value === false) {

// 注意到,當(dāng)callback函數(shù)返回值會false的時候,注意是全等!循環(huán)結(jié)束

break;

}

}

// 非數(shù)組

} else {

for (i in obj) {

value = callback.apply(obj[i], args);



if (value === false) {

break;

}

}

}



// A special, fast, case for the most common use of each

} else {

// 數(shù)組

// 其實(shí)這里代碼有點(diǎn)贅余,如果考慮代碼的簡潔性犧牲一點(diǎn)點(diǎn)性能

// 在處理數(shù)組的情況下,也是可以用 for(i in obj)的

if (isArray) {

for (; i < length; i++) {

// 相當(dāng)于callback(i, obj[i])。然后callback里邊的this指向了obj[i]

value = callback.call(obj[i], i, obj[i]);



if (value === false) {

break;

}

}

// 非數(shù)組

} else {

for (i in obj) {

value = callback.call(obj[i], i, obj[i]);



if (value === false) {

break;

}

}

}

}



return obj;

},

源碼里面有兩個,教程里面是帶有第三方參數(shù)的

1 回復(fù) 有任何疑惑可以回復(fù)我~

apply 和 call 第一個參數(shù)都是指代的是 callback 函數(shù)中 this 環(huán)境。

如果按照你的寫法:callback.apply(obj[i], args)。this 指向obj[i]沒有意義。

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

callback.apply(obj[i], args)這樣寫有問題

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號