【发布时间】:2016-11-25 21:57:22
【问题描述】:
我一直在尝试使用 object.defineproperty 编写 getter 和 setter,但不能。我一直在尝试这个示例,但由于未定义 firstName 属性而引发错误。有人可以帮助我吗
function person(fName, lName) {
Object.defineProperty(this, 'firstName', {
get:function() { return firstName; },
set:function(newValue){firstName=newValue;}
});
}
var p1=person("xyz","abc");
console.log(p1.firstName);
谢谢
【问题讨论】:
-
你在哪里使用
fName和lName?呃,你没有。您如何期望传递一个值而不传递它? ;-) -
我的想法是在 person 对象中创建一个 firstName 属性,该属性应该具有 fName 值
-
找不到我该怎么做的方法
-
嗯,错误很明显。您没有在任何地方定义
firstName变量,因此return firstName会抛出,firstName=newValue在草率模式下创建全局属性并在严格模式下抛出。
标签: javascript html defineproperty