我有一个关于对象的(很可能是简单和笨拙的)问题。我创建了实例“Person”的对象“jon”。当我打电话
console.log(jon.name)
控制台会给我“jon”。到现在为止还挺好。
运行代码并输入控制台本身后
jon.name
我希望得到“jon”,但是控制台告诉我jon是未定义的。有人能解释我为什么吗?
答案 0 :(得分:1)
jsfiddle中的代码在另一个函数或某种类型的发送框的范围内运行,这就是变量jon
在全局范围内不可用的原因。
如果您使用<script>
标签创建简单的html文件,并在浏览器中打开它,您将获得您期望的行为:
<script>
var Person = function(name, age) {
this.name = name;
this.age = age;
}
var jon = new Person("jon", 24);
console.log(jon.name + " " + jon.age)
</script>
如果您在控制台中访问jon
,您将找到该对象,因为它现在是全局范围的一部分。