javascript - 当对象内部声明的属性为非函数时,该属性值无法调用该对象内部的其他函数

查看:112
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆