javascript - JavaScript 类设置自己
问题描述
很明显,类属性可以有它自己的get
功能set
。但是呢this
?
正如我到目前为止所尝试的那样,做这样的事情是合法的:
class Bind {
constructor(val) {
this.val = val;
}
set this(val) {
alert('not sure what happens here!');
}
get this() {
return this.val;
}
}
所以这些行:
var b = new Bind(123);
b = 456;
应该调用 setter 函数,但警报永远不会触发。
知道那个二传手是做什么的吗?
解决方案
b = 456;
因为这不会b
以任何方式更改先前的值,它只是将先前存储的引用更改为一个值。我的意思的一个小例子:
let a = {it: "wont change" };
let b = a;
console.log(a, b);
b = 456;
console.log(a, b);
如果重写b
会以任何方式改变被引用的对象,a
那么也会改变。
相反,您可以通过以下方式访问 setter:
b.this = 456;
推荐阅读
- java - Java getResourceAsStream 在 JAR 中始终为空
- typescript - 箭头函数未转译
- javascript - 为什么 isNaN(true) (或 (isNaN(false) )返回假?
- python - GPT-2 从检查点继续训练
- c# - 如何更改 Secondary Toolbaritem Xamarin Forms 的图标
- wordpress - WordPress 古腾堡页面编辑器白屏死机
- python - 我可以在 wxPython 中获得带有子菜单的可点击菜单项吗?
- java - springboot应用程序中单元和集成测试的并行化
- python - 使用字典调用函数 - 字典键作为参数,字典值作为参数
- sql - SQL根据另一个字段的值创建增量字段