亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

javascript函數參數傳遞問題。

javascript函數參數傳遞問題。

kx00012kx 2016-07-28 17:28:13
javascript進階篇 9-22 編程練習這是參考代碼里的刪除<tr>標簽調用的函數: function deleteRow(obj){ ? ?var tbody = document.getElementById('table').lastChild; ? var tr = obj.parentNode.parentNode; tbody.removeChild(tr); }函數里的參數obj該怎么理解?從“var tr = obj.parentNode.parentNode;”反推,這一條代碼里的obj相當于是<td>標簽下的一個文本節點,類似“王小明”、“劉小芳”等等這樣的文本節點。為什么這里在沒有說明的情況下就可以把參數obj默認為一個文本節點?為什么“var tr = obj.parentNode.parentNode;”不能用 ?var tr = obj.parentNode;或者用 ?var tr = obj;替換?
查看完整描述

1 回答

?
回夢

TA貢獻18條經驗 獲得超5個贊

你先理解以下什么是函數。我給你寫個簡單的例子。

function add(a,b){return a+b;}

?好了,我函數定義好了,但是你知道a和b是什么嗎?我函數擺在這里,我沒有去調用,是沒有意義的。

只有當我使用add(1,2);的時候 這個函數才會觸發,那么a=1,b=2;函數執行完畢得到結果3.

這樣你能理解嗎?

函數的那個obj只是一個實參,傳遞過來的是什么還需要看傳遞者。

你可以去看看形參和實參的解釋。

查看完整回答
1 反對 回復 2016-07-28
  • kx00012kx
    kx00012kx
    你舉的栗子可以理解,形參與實參也去了解了,謝謝! 在點擊刪除調用函數function deleteRow(obj){。。。。}時,傳入的是“this”(“deleteRow(this)”), 在這個栗子里的this,我認為是直接代指了“刪除”這個文本節點本身,在我的邏輯里,我覺得這樣就解釋的通 “var tr = obj.parentNode.parentNode;”了,因為刪除的層級關系是跟“王小明”、“劉小芳”等等這樣的文本節點一樣的。 可以這樣理解嗎?this,在js里有特殊的指定含義嗎?
  • 回夢
    回夢
    有點類似于指針,我自己雖然知道是什么意思,但是我說不明白。 關于這一塊,你可以多打斷點去看看this到底代表什么。 把它用console.log打印出來,在控制臺看看,對你理解它有一些幫助。
  • 1 回答
  • 0 關注
  • 1329 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號