【发布时间】:2018-05-15 20:42:28
【问题描述】:
我昨天开始学习 JavaScript,今天我在学习对象和函数。
我已经完成了这项工作,但我真的很怀疑为什么在 dog1 对象中,如果我使用 this 关键字,我只会在日志中返回“未定义”。
我已经在这里和谷歌上搜索过这个,但没有运气。我不是在寻找解决此问题的代码,只是为了了解为什么在第二种情况下“this”不起作用。
var dog0 = {
Name: "Bob",
color: "Golden",
breed: "Labrador",
dogcard1: function() {
return "Hi, this is " + this.Name + ", a " + this.color + " " + this.breed ;
}
};
console.log(dog0.dogcard1());
function dogcard(a, b, c) {
return "Hi, this is " + a + ", a " + b + " " + c ;
}
var dog1 = new Object();
dog1.Name = "Suzy";
dog1.color = "black";
dog1.breed = "Bulldog";
dog1.presentation = dogcard(this.Name, dog1.color, dog1.breed);
console.log(dog1.presentation);
【问题讨论】:
-
这是java吗???
-
您在这里谈论的是 JavaScript。 Java 之于 JavaScript,就像汽车之于地毯一样。
-
因为
this不是指您认为的内容 -
@Cam 我什至不确定这是一个骗子,JavaScript 中的
this可能会令人困惑,但在这种情况下,它甚至不是 JS 的怪事。他甚至没有在函数内部调用this。那么OP还能认为this是什么......?
标签: javascript object this