这是我感到困惑的事情。
我可以完美地定义这样的对象:
var person = {};
并使用点符号来指定属性,但是我看到了一个简单的定义:
var person;
然后使用
person.setName = 'Some cool name';
即使没有声明为对象方式,Javascript是否将其视为对象? 或者那是别的吗?
答案 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属性,因为它不是一个对象,就是全部。