Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript对象上下文_Javascript - Fatal编程技术网

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)