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

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

請問下在一個js中的函數,第一句var _this = this;為什么要這樣做?

請問下在一個js中的函數,第一句var _this = this;為什么要這樣做?

當年話下 2022-04-03 13:09:57
下面這段代碼是常用的網站首頁,自動切換span或者tabbar來變更List顯示內容的關鍵方法:function scrollDoor(){}scrollDoor.prototype = {sd : function(menus,divs,openClass,closeClass){var _this = this; //大家看清楚了,在這里,為什么不直接用this,要用_this代替后面的所有this,這有什么特殊的意義嗎?如果用了this會怎么樣?一共2個問題哈!if(menus.length != divs.length){alert("菜單層數量和內容層數量不一樣!");return false;}for(var i = 0 ; i < menus.length ; i++){_this.$(menus[i]).value = i;_this.$(menus[i]).onmouseover = function(){for(var j = 0 ; j < menus.length ; j++){_this.$(menus[j]).className = closeClass;_this.$(divs[j]).style.display = "none";}_this.$(menus[this.value]).className = openClass;_this.$(divs[this.value]).style.display = "block";}}},$ : function(oid){if(typeof(oid) == "string")return document.getElementById(oid);return oid;}}
查看完整描述

2 回答

?
千巷貓影

TA貢獻1829條經驗 獲得超7個贊

問題一:
不知道樓主有沒有接觸過jquery jquery里邊有一個特別典型的例子能說明用_this的作用
$("#btn").click(function(){
var _this = this;//這里this和_this都代表了"#btn"這個對象
$(".tr").each(function(){
this;//在這里this代表的是每個遍歷到的".tr"對象
_this;//仍代表"#btn"對象
})
})
這種情況就是在一個代碼片段里this有可能代表不同的對象,而編碼者希望_this代表最初的對象
問題2:
其實并沒有全部使用_this
但是據我所看,應該沒有任何區別的,樓主的代碼里用_this可能只是為了編碼規范吧

查看完整回答
反對 回復 2022-04-06
?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

這里的this是關鍵字了,表示當前的對象的意思。
第二個問題 沒試過 這里是要在其他地方使用當前對象 如果這樣用其他地方就會引用錯誤吧

查看完整回答
反對 回復 2022-04-06
  • 2 回答
  • 0 關注
  • 200 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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