Javascript对象上下文
此对象是否有其上下文:Javascript对象上下文,javascript,Javascript,此对象是否有其上下文: {} 如果是,那么它还必须具有VO(变量对象)。因此,当我执行此操作时: foo={ name:"Maizere", height:function () {console.log(name);}//output is undefined } foo.height(); 当height()方法运行时,js首先检查函数上下文,因为它找不到该名称,它会移动到下一个,即父上下文Vo,这里父上下文是文本对象的上下文,因为该名称驻留在该Vo中,为什么我得
{}
如果是,那么它还必须具有VO(变量对象)。因此,当我执行此操作时:
foo={
name:"Maizere",
height:function () {console.log(name);}//output is undefined
}
foo.height();
当height()方法运行时,js首先检查函数上下文,因为它找不到该名称,它会移动到下一个,即父上下文Vo,这里父上下文是文本对象的上下文,因为该名称驻留在该Vo中,为什么我得不到定义
这个属性是如何作为属性或变量存在于文本对象上下文的VO中的,我需要一个完整的解释。谢谢大家。看起来你想要
这个
关键字,你在名称行上有一个小的语法错误(你想要一个,
,但写了;
)
看起来您想要
这个
关键字,并且在名称行上有一个小的语法错误(您想要一个,
,但写了;
)
使用
this
通过当前对象引用对象成员:
height: function() { console.log( this.name ); }
// ^^^^
使用
this
通过当前对象引用对象成员:
height: function() { console.log( this.name ); }
// ^^^^
您将调用上下文(与)与变量范围和对象属性混淆
要回答您的问题:否,对象没有作用域。只有函数具有scope属性,当调用它们时,该属性将初始化其变量对象的作用域链。由于在
height
函数的作用域中没有名为name
的变量,因此它会解析为未定义的
(甚至是一个引用错误)。您将调用上下文(与)与变量作用域和对象属性混淆
要回答您的问题:否,对象没有作用域。只有函数具有scope属性,当调用它们时,该属性将初始化其变量对象的作用域链。由于在
height
函数的作用域中没有名为name
的变量,因此它会解析为未定义的(甚至是一个引用错误)。当您在对象中时,必须引用父对象或自身才能访问方法,所以应该是:console.log(this.name)
。当您在对象中时,必须引用父对象
或自身
,才能访问方法
,因此它应该是:console.log(this.name)代码>。