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

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

關于call的使用

function?add(c,d){

?			return?this.a?+this.b+c?+d;
?		}

?		var?o?={a:1,b:3};

?		add.call(o,1,10);
?		

這里在定義function add的時候,沒有定義ab變量,為什么不會報錯呢?老師說這個call使用之后,1 和10就會傳給add里面的c 和d,然后add里面的a和b就是o里面的a和b???是不是因為都是a和b所以就是一樣的???如果o里面的不是a和b呢?

正在回答

4 回答

關于add.call(o,1,10);你可以理解為,對象o中有了add這個方法,即:

var o{

a:1,

b:3,

// 在對象o中新增加了?

function?add(c,d){

?

???????????return?this.a?+this.b+c?+d;

???????}

?

?return?this.a?+this.b+c?+d

}

此時的a,b就是1,3;而1,10就是c,d

1 回復 有任何疑惑可以回復我~
#1

深夏之葉 提問者

恩恩。所以如果o剛開始是這么定義的話。你看下面的代碼。 var o{ e:1, f:3, // 在對象o中新增加了 function add(c,d){ return this.a +this.b+c +d; } return this.a +this.b+c +d } 就是o里面的變量改成e 和f的話,是不是就不能運行了。因為add里面的變量是a和b
2016-10-19 回復 有任何疑惑可以回復我~
#2

weibo_陳杰夫長頸鹿_03237116 回復 深夏之葉 提問者

是的!
2016-10-19 回復 有任何疑惑可以回復我~
#3

林金章

這樣寫不對吧
2017-03-09 回復 有任何疑惑可以回復我~

call和apply可以按你說的這樣,那bind方法呢?

0 回復 有任何疑惑可以回復我~
#1

慕粉1440489053

bind是綁定環(huán)境啊 傳入需要作為this值的對象
2017-04-21 回復 有任何疑惑可以回復我~

上邊這位說的很到位,其實就是相當于個o對象添加了一個方法而已,只不過這個方法沒有定義在對象的內部,相當于吧一個函數(shù)的方法用call方法調用給了這個對象。

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

定義函數(shù)可以傳入?yún)?shù)也可以不傳入?yún)?shù),因為函數(shù)對象默認會有arguments內置方法來保存函數(shù)調用時實際傳入的參數(shù)。這個add函數(shù)定義時沒有傳入啊,a,b參數(shù)但是上邊的函數(shù)是為下方o對象調用call方法是調用函數(shù)的this.a和this.b來使用,相當于對象調用函數(shù)對象那個的方法來使用。call方法第一個傳入要綁定this的對象,后邊傳入單個參數(shù)。如果還不理解就上網(wǎng)查call和apply和bind的具體用法。

1 回復 有任何疑惑可以回復我~
#1

深夏之葉 提問者

很到位
2016-10-19 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
JavaScript深入淺出
  • 參與學習       281095    人
  • 解答問題       1054    個

由淺入深學習JS語言特性,且解析JS常見誤區(qū),從入門到掌握

進入課程

關于call的使用

我要回答 關注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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