簡體   English   中英

在變量上調用它時,console.log 打印“未定義”

[英]console.log printing 'undefined' when calling this on a variable

我是 JavaScript 的新手,我找不到這里發生的事情的明確答案:

 function bike() { console.log(this.name); } var name = "John"; var obj1 = { name: "Sam", bike: bike }; var obj2 = { name: "Paul", bike: bike }; bike(); // undefined obj1.bike(); // Sam obj2.bike(); // Paul

我不明白為什么它在終端上打印“未定義”而不是“約翰”

這種行為沒有錯,

function bike() {
  console.log(this.name);
}

var name = "John";
var obj1 = {
  name: "Sam",
  bike: bike
};
var obj2 = {
  name: "Paul",
  bike: bike
};

bike(); // undefined here it refers to (**this**).name
        //if you run the same in browser console 
        // you will get jhon
        // but in node there is no window object
        // that's y you are getting undefined in node terminal

obj1.bike(); // Sam
obj2.bike(); // Paul

請參閱 ASDFGerte 建議的鏈接以獲取更多信息

很簡單,你只要寫

window.name

window.variableName 用於打印全局變量

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM