js使用Object.defineProperty实现geter, seter

浏览:2198 发布日期:2015-10-18 02:49:07

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属性赋值时进行额外的操作。