我是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
我不明白为什么它在终端上打印“ undefined”而不是“ John”
答案 0 :(得分:0)
此行为没有错,
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建议的链接以获取更多信息
答案 1 :(得分:-2)
您只需编写
window.name
window.variableName它用于打印全局变量