Object.defineProperty()
方法直接在一个对象上定义一个新属性,或者修改一个已经存在的属性, 并返回这个对象。
加入我们有如下的构造函数:
function Person(name, age) { var _name = ""; Object.defineProperty(this, "name", { get: function () { return _name + "--haha"; }, set: function (val) { if (typeof val === "string") { _name = val; } else { throw new TypeError("只接受字符串值"); } } }); this.name = name; }
那么我们便可以在对name属性赋值时进行额外的操作。