在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Android  HTML/ js函數(shù)調(diào)用問(wèn)題

js函數(shù)調(diào)用問(wèn)題

var color = "green";
    var test = {
        color:"blue",
        getColor:function(){
            var color = "red";
            alert(this.color);
        }
    }
    var getColor = test.getColor;//js函數(shù)調(diào)用時(shí)加括號(hào)和不加括號(hào)的區(qū)別:不加括號(hào)相當(dāng)于把函數(shù)代碼賦給等號(hào)左邊,加括號(hào)是把函數(shù)返回值賦給等號(hào)左邊
    getColor(); //為windows調(diào)用
    test.getColor();//為test對(duì)象調(diào)用

運(yùn)行第一個(gè)getColor(),alert彈出的的不應(yīng)該是"green"嗎,為什么我這里是undefined?

兩個(gè)alert顯示的值:
clipboard.png

clipboard.png

回答
編輯回答
熊出沒(méi)

圖片描述

直接運(yùn)行,好像沒(méi)問(wèn)題呢!是alert green。
可能跟環(huán)境有關(guān),你是什么瀏覽器?我用的Chrome,在Mac下面。

2017年11月6日 17:04
編輯回答
氕氘氚

alert彈出的確實(shí)是green,至于你說(shuō)的undefined應(yīng)該是getColor()的返回值,在控制臺(tái)中輸入命令,下一行會(huì)打印返回值return xx;

var test = {
    color:"blue",
    getColor:function(){
        var color = "red";
        alert(this.color);
        //這里并沒(méi)有retrun 任何東西
        //加上return就有結(jié)果了
        return this.color
    }
}
2018年6月16日 15:21
編輯回答
黑與白

你是在控制臺(tái)去運(yùn)行的吧,最后一個(gè)undefined是因?yàn)闆](méi)有return值,可以忽略

2017年4月18日 19:03
編輯回答
笨尐豬

把你編輯器里原始代碼截圖發(fā)一下

2018年1月14日 14:20
編輯回答
做不到

第一個(gè)調(diào)用的時(shí)候 this 是window
第二個(gè)才是 test

2018年8月20日 12:37
編輯回答
夕顏

這是因this的指向,是在函數(shù)調(diào)用的時(shí)候綁定的,而不是在函數(shù)聲明的時(shí)候,與當(dāng)前的執(zhí)行上下文環(huán)境有關(guān)。第一個(gè)函數(shù)調(diào)用的執(zhí)行上下文是window,而第二個(gè)test對(duì)象。所以答案顯而易見(jiàn)。

2018年6月11日 02:44