返回 JavaScript 类值而不是对象引用(在 ES6 中)
Return JavaScript class value instead of object reference (in ES6)
我希望创建一个类,以便它将返回一个值而不是 ES6 中的类对象。
这与这个问题几乎相同,但在 ES6 中。这稍微触及了它,但您仍然必须显式调用属性。
我想做这样的事情:
class Foo {
constructor(value) {
this.value = value; // returns an object other than *this*.
}
}
var foo = new Foo(4);
console.log(foo) // 4
但目前它返回{value: 4}
.
valueOf
可以帮助您完成任何尝试的操作:
class Foo {
constructor(value) { this.value = value; }
valueOf() { return this.value; }
^^^^^^^^^
}
var foo = new Foo(4);
console.log(+foo) // 4
你必须确保你了解valueOf
是如何工作的。根据文档:
JavaScript 调用 valueOf 方法将对象转换为基元值。
因此,简单地引用对象不会调用valueOf
,当然;这将使您无法引用底层对象。它用于需要将对象强制为基元的情况,例如在+foo
中。
valueOf
与 ES6 本身无关;它适用于所有对象。
相关文章:
- 如何使用object.assign()从其他对象引用基本对象属性
- 返回 JavaScript 类值而不是对象引用
- Facebook:当发布期望对象引用时显示打开的图形对话框
- Javascript-如何从字符串/对象引用回调
- 将其用于对象引用
- 如何将对象引用传递到 mootools 中另一个对象的构造函数中
- Javascript:将类/对象引用设置为 NULL,内存中的子对象/类会发生什么
- 在 Jquery 中,我可以存储对象引用并在以后使用它吗?
- 将对象函数传递给请求动画帧时丢失对象引用
- JavaScript ecma6中的对象引用
- 在JSON中存储对象引用
- 为什么可以在内部函数成员中访问对象引用,而不能在内部属性成员中访问
- 对象引用的隐式传递是如何工作的
- 按对象的 ID 删除对选定对象的对象引用
- 在调用的函数中使用对象引用(this)
- 如何在testcomplete+js中获取对象引用
- 在Angularjs服务中为返回对象引用的http请求提供的数据构建简单的缓存
- ES6对象简写表示法可以与常规对象表示法相结合吗
- JavaScript对象引用
- 返回 JavaScript 类值而不是对象引用(在 ES6 中)