var User = {
getName: function() {
return 'Mac';
},
// 错误的调用
name: User.getName(),
// 正确的调用
nameFun: function() {
return this.getName();
}
};
console.log(User.name); // 报错
console.log(User.nameFun); // 正常返回
我的问题是只能在函数内部才能调用其他函数吗?
User里的name非函数,无法直接调用getName()
nameFun可以调用,这里面牵扯到什么问题呢?没想明白,求教
name 属性的绑定发生在 User 对象创建的时刻。而此时 User 还未被绑定,依然为 undefined。所以实际上在 User.name 时调用的是 undefined.getName()。自然会报错。