变量可以像对象一样对待吗?

时间:2015-11-19 17:44:36

标签: javascript

这是我感到困惑的事情。

我可以完美地定义这样的对象:

var person = {};

并使用点符号来指定属性,但是我看到了一个简单的定义:

var person;

然后使用

person.setName = 'Some cool name';

即使没有声明为对象方式,Javascript是否将其视为对象? 或者那是别的吗?

2 个答案:

答案 0 :(得分:11)

  

即使没有声明为对象方式,Javascript是否将其视为对象?

对象是,变量是值的容器。未初始化变量的默认值undefined

var person;
// same as
var person = undefined;

undefined不是对象,不能被视为对象。您发布的代码会引发错误。

> var person;
> person.setName = 'Some cool name';
Uncaught TypeError: Cannot set property 'setName' of undefined(…)

答案 1 :(得分:1)

好吧,像这样设置person

var person;

然后尝试设置它的某些属性将导致着名的未定义错误,因为它只相当于

var person = undefined;

你不能设置undefined属性,因为它不是一个对象,就是全部。