如何在 JavaScript 中“获取”成员变量
How do I "get" a member variable in JavaScript?
function User() {
this.firstname = null;
get getFirst() {
return this.firstname;
}
}
JavaScript 控制台在第 12 行给我一个错误,说"意外标识符">
var Jake = new User();
Jake.firstname = "Jake";
document.write(Jake.getFirst);
这不是你用来定义getter的语法。您可以在对象文本中使用它,如下所示:
var foo = {
get bar() {
return 42;
}
};
foo.bar; // 42
。但这不是你的get
所在的地方。
要定义get
的位置,您可以使用defineProperty
:
function User() {
this.firstname = null;
Object.defineProperty(this, "first", {
get: function() {
return this.firstname;
}
});
}
注意我称它为first
,而不是getFirst
,因为它是一个访问器函数,看起来像一个直接的属性访问,所以传统上不以动词形式命名:
var u = new User();
u.firstname = "Paul";
u.first; // "Paul"
如果你想创建一个名为 getFirst
的函数,只需去掉 get
关键字:
this.getFirst = function() {
return firstname;
};
// ...
var u = new User();
u.firstname = "Paul";
u.getFirst(); // "Paul"
我相信
问题是您将get
与函数一起使用,而不是文档中概述的对象文字。
var User = {
firstName: 'Darren',
get getFirst() { return this.firstName; }
}
alert(User.getFirst);
https://jsfiddle.net/ecao51n0/
get
旨在在对象中调用,而不是函数构造函数。如果你想在User
上将getFirst
声明为一个函数,那么这里有一种方法可以做到这一点:
function User() {
this.firstname = null;
this.getFirst = function() {
return this.firstname;
}
}
然后,您还需要将getFirst
作为函数调用:
var Jake = new User();
Jake.firstname = "Jake";
document.write(Jake.getFirst());
相关文章:
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 如何在 JavaScript 中“获取”成员变量
- X-editable:如何获取每行的id,以便更新单个成员
- 获取成员数据模型中任何属性的属性类型
- 推进器的存在可以't使用angularjs和golang获取成员
- 如何在javascript中声明成员函数?获取“TypeError: Object.function is not a
- JS - 获取类的成员名称
- 从 Meetup API 获取 200 多名组成员
- 在运行时动态获取javascript中数组成员的名称
- 获取对象的值'通过变量的成员
- 如何获取当前/选定的id与链接到成员中的助手
- 如何从 jquery 中属于同一类成员的元素中获取所有不同的值
- 如何从对象中获取成员名称
- 在成员函数回调中获取对象
- 如何在javascript中获取对象的第一个成员
- 如何使用类名作为选择器获取类成员的数据属性
- 如何在碰撞检测函数中获取成员变量
- Trello API:如何获取组织或成员的董事会id
- 原型编程- Javascript错误:这个.如果窗体未定义,则无法在成员方法中获取对象变量
- 数组的成员是未定义的,它拥有获取该成员所需的所有数据