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

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

關(guān)于JS里的this問題。

關(guān)于JS里的this問題。

kevinZee 2017-03-06 13:41:39
<script?type="text/javascript"> var?value="1"; window.onload=function() { var?oBtn=document.getElementsByTagName('input')[0]; oBtn.onclick=function() { function?fn() { alert(this.value); } ????????fn();??????????????????????//打印出1 } } </script> <body> <input?type="button"?value="click"> </body>請問函數(shù)fn內(nèi)的this為什么指向了window
查看完整描述

3 回答

?
ruibin

TA貢獻358條經(jīng)驗 獲得超213個贊

function?fn()

????????{

????????????alert(this.value);

????????}

這個函數(shù)的運行環(huán)境是window,所以這里面的this指向window。如果你想打印出oBtn的value值,函數(shù)可以這樣改造下,

window.onload=function()

{

????var?oBtn=document.getElementsByTagName('input')[0];

????oBtn.onclick=function()

????{

????????var _this = this; //此時運行環(huán)境中的this為oBtn

????????function?fn()

????????{

????????????alert(_this.value);

????????}

????????fn();??????????????????????//打印出1

????}

}


查看完整回答
1 反對 回復(fù) 2017-03-06
  • kevinZee
    kevinZee
    多謝回復(fù),我主要疑問就是fn的運行環(huán)境是window
?
滄浪之水

TA貢獻15條經(jīng)驗 獲得超2個贊

this 問題很簡單,this總是指向當(dāng)前調(diào)用的對象,如 object.method 如果沒有隱去了調(diào)用的對象,則一般為全局對象,瀏覽器中是window對象, 在nodejs中是global對象。

查看完整回答
反對 回復(fù) 2017-03-06
?
qq_e累_0

TA貢獻12條經(jīng)驗 獲得超15個贊

應(yīng)該是你生聲明了一個全局函數(shù)(fn) ? ;fn 是window下的。?

查看完整回答
反對 回復(fù) 2017-03-06
  • kevinZee
    kevinZee
    我聲明在onclick里,那fn不應(yīng)該只存在于這個事件的函數(shù)的作用域里嗎,求解
  • qq_e累_0
    qq_e累_0
    var fn = function (){...} 才是在事件的函數(shù)的作用域里
  • kevinZee
    kevinZee
    多謝回復(fù),我試了下用var fn = function (){...} ,運行環(huán)境還是在window下的。我覺得這里估計是不是可以按閉包的匿名函數(shù)理解,匿名函數(shù)具有全局性
  • 3 回答
  • 0 關(guān)注
  • 2426 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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