我正在尝试将类的 setter 函数作为参数提交。
假设有:
class A {
set foo(foo) {
this._foo = foo
}
}
但是,如果我正在调用 函数 f(setter) { setter(); }
像这样f(obj.foo)
,当然obj.foo
的值会调用getter提交。
我正在考虑使用箭头函数 (foo) => obj.foo = foo
并且它有效。但是必须有一个更短的方法,比如 f(obj.setFoo)
来获取 setter 函数。
欢迎提出想法。
最佳答案
But there must be a shorter way, something like f(obj.setFoo) to get the setter function.
没有。还有更长的路,
var setFoo = Object.getOwnPropertyDescriptor(obj, 'foo').set;
setFoo.call(obj, 'bar');
访问函数存储在 internal property attributes 中并且在不使用反射的情况下无法访问。坚持使用箭头函数解决方案或在类上定义 getter/setter 函数(而不是访问器属性)。
关于javascript - 作为函数的 ES6 类 setter ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38371792/