javascript - 当对象内部声明的属性为非函数时,该属性值无法调用该对象内部的其他函数
本文介绍了javascript - 当对象内部声明的属性为非函数时,该属性值无法调用该对象内部的其他函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
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()。自然会报错。
这篇关于javascript - 当对象内部声明的属性为非函数时,该属性值无法调用该对象内部的其他函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文