Mi*_*ght 3 javascript getter get
function User() {
this.firstname = null;
get getFirst() {
return this.firstname;
}
}
Run Code Online (Sandbox Code Playgroud)
JavaScript控制台在第12行给出了一个错误"错误标识符"
var Jake = new User();
Jake.firstname = "Jake";
document.write(Jake.getFirst);
Run Code Online (Sandbox Code Playgroud)
这不是您用来定义getter的语法.你可以在对象文字中使用它,如下所示:
var foo = {
get bar() {
return 42;
}
};
foo.bar; // 42
Run Code Online (Sandbox Code Playgroud)
......但那不是你的地方get.
要定义它的位置get,您可以使用defineProperty:
function User() {
this.firstname = null;
Object.defineProperty(this, "first", {
get: function() {
return this.firstname;
}
});
}
Run Code Online (Sandbox Code Playgroud)
注意我调用它first,不是getFirst,因为它是一个访问器函数,看起来像直接属性访问,因此传统上没有给出动词形式的名称:
var u = new User();
u.firstname = "Paul";
u.first; // "Paul"
Run Code Online (Sandbox Code Playgroud)
如果你想创建一个名为的函数getFirst,只需删除get关键字:
this.getFirst = function() {
return firstname;
};
// ...
var u = new User();
u.firstname = "Paul";
u.getFirst(); // "Paul"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
370 次 |
| 最近记录: |