我今天试了这个:
var x = new Object();
x.foo;
console.log(x);
console.log(x.length);
结果:
{}
undefined
为什么在创建对象的空属性时,该对象是否为空?
答案 0 :(得分:2)
你并没有创造一个空洞的东西......你没有字面意思(除非我们考虑尝试访问不存在的房产)!
尝试:
x.foo = undefined;
答案 1 :(得分:1)
因为您没有创建foo
属性;您已评估表达式x.foo
,结果为undefined
,因为属性foo
不存在。这不会影响对象。
答案 2 :(得分:1)
您还没有创建属性,但您已尝试访问不存在的属性。如果您曾尝试为该属性分配值。该物业将被创建
var x = new Object();
x.foo = undefined;
console.log(x);
console.log(x.length);
会尊重地打印{foo: undefined}
和undefined
答案 3 :(得分:0)
看看这些,希望能帮到你
var x = new Object();
x.foo;
console.log('x: ', x);
console.log('x.length', x.length);
var y = new Object();
y['foo'] = '';
console.log('y', y);
console.log('keys:', Object.keys(y));
console.log('keys length:', Object.keys(y).length);