如何解决在 Javascript 中正确使用“调用”来访问对象属性
我是 Javascript 新手,尽管已经在线阅读了多个线程和教程,但我无法在此示例中正确使用“调用”来访问对象的属性
我知道问题是当"b()"被调用时,"this"是全局对象,我必须使用call(或apply)方法来确保当"b"被调用时this是设置为对象本身,但我找不到错误。
我知道存在箭头函数,并且可能还有其他方法,但我想了解使用 call 有什么问题。谢谢。
代码是
class Letter {
constructor() {let a = "a";}
b() {alert (this.a);} //can't access a. Prints "undefined"
c() {this.b.call(this);}
}
let p = new Letter ();
p.c();
解决方法
a
不作为对象的属性存在 - 它是一个变量,一个在构造函数中可见的标识符,而不是对象上的实例。
没有什么好方法可以访问在另一个作用域中声明的变量。对于您要完成的任务,请将 a
定义为实例的属性。
constructor() {
this.a = 'a';
}
您根本不需要 .call
- 只需执行 this.b()
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。