[英]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.