javascript - 关于Object.create 建立对象的问题?

查看:71
本文介绍了javascript - 关于Object.create 建立对象的问题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

var yinhang = Object.create(Object.prototype,{
    type : {
        value : "建设银行",
        writable : true,
        enumerable : true
    },
    money : {
        get : function() {
           if(typeof money === "undefined" ) {
               return "账户中没有钱";
           }
           return money;
        },
        set : function(num) {
           money+=num;
           return "账户中有"+money
        }
    }

});

yinhang.money
// "账户中没有钱"
yinhang.money = 1000
VM893:16 Uncaught ReferenceError: money is not defined(…)

为什么给money赋值会报错呢?

解决方案


账户中没有钱的时候,money的类型是undefined,当你写money+=num的时候,实际上是money=money+num,此处的money是未定义的,不能加num,稍微修改一下即可

var yinhang = Object.create(Object.prototype,{
        type : {
            value : "建设银行",
            writable : true,
            enumerable : true
        },
        money : {
            get : function() {
                if(typeof money === "undefined" ) {
                    return "账户中没有钱";
                }
                return money;
            },
            set : function(num) {
                if (typeof money === "undefined" ){
                    money = num;
                }else {
                    money += num;
                }
                return "账户中有"+money
            }
        }

    });

这篇关于javascript - 关于Object.create 建立对象的问题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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