Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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,我正在读这个js,在Def中。5:类部分有一个代码片段: // Generic prototype for all letters. let letter = { getNumber() { return this.number; } }; 我想知道getNumber方法如何引用未声明的number?在您的代码中,此.number是未定义的字母.number。而且,这意味着它被评估为未定义的 var obj = {}; obj.number; // undefined 在代码

我正在读这个js,在
Def中。5:类
部分有一个代码片段:

// Generic prototype for all letters.
let letter = {
  getNumber() {
    return this.number;
  }
};

我想知道
getNumber
方法如何引用未声明的
number

在您的代码中,
此.number
是未定义的
字母.number
。而且,这意味着它被评估为
未定义的

var obj = {};
obj.number; // undefined

在代码中,
此.number
是未定义的
字母.number
。而且,这意味着它被评估为
未定义的

var obj = {};
obj.number; // undefined

number
不是变量,而是属性。您不必声明属性(事实上,在进展之前[目前处于,您不能声明属性;没有属性声明语法,只有属性初始化语法)。变量是对象外部的存储。属性是对象内部的存储

如果您想知道
getNumber
如何在属性创建之前使用它,那是因为JavaScript就是这样定义的:尝试获取不存在的属性的值会导致值
未定义,而不是错误



至少就您的代码而言是这样。在规范术语中,变量是绑定(非常类似于属性)在词法环境对象中,但这是一个规范,而不是可以直接在代码中使用的东西。

number
不是一个变量,而是一个属性。您不必声明属性(事实上,直到[当前处于,您不能声明属性;没有属性声明语法,只有属性初始化语法)。变量是对象外部的存储。属性是对象内部的存储

如果您想知道
getNumber
如何在属性创建之前使用它,那是因为JavaScript就是这样定义的:尝试获取不存在的属性的值会导致值
未定义,而不是错误



至少就代码而言是这样。在规范术语中,变量是词法环境对象内的绑定(非常类似于属性),但这是一种规范,不能直接在代码中使用。

谢谢我键入的
letter.getNumber()
在chrome控制台中,它确实返回了
未定义的
。谢谢我键入了
letter.getNumber()
在chrome控制台中,它确实返回了
未定义的
。感谢您的时间!不幸的是,我只能接受一个答案,但我比您的答案高,请继续努力!感谢您的时间!不幸的是,我只能接受一个答案,但我比您的答案高,请继续努力!