gpt4 book ai didi

javascript - 在 ES6 中,为什么不使用 this 就不能引用同级方法?

转载 作者:行者123 更新时间:2023-11-28 14:50:09 25 4
gpt4 key购买 nike

为什么这不起作用,我认为在大多数其他语言中都可以。

class Test {
a() {
console.log('hi');
}
b() {
a();
}
}

在 Java 或 Ruby 中这可以工作。从 b 调用 a 完全没问题……但是在 Javascript 类中。为什么我需要放置 this.a, this.b, this this this..?

其背后的技术原因是什么,有什么好处,现在是否会改变 - 有计划吗?

最佳答案

从根本上来说,JavaScript 没有基于类的继承。它具有基于原型(prototype)的继承和一些语法糖来模仿基于类的继承。

更一般地说,尝试确定 a() 是否意味着 this.a() 还是意味着另一个 a() 会出现严重的性能问题 存在于当前函数可以访问的范围内。这甚至可能在每次调用 b() 时发生变化!

请记住,在 JavaScript 中,仅仅因为对象现在有一个方法 a() 并不意味着它以后仍将具有该方法 a()。您可以删除对象的方法,也可以向对象添加新方法。

尝试确定哪个函数是预期的调用目标基本上会产生完全相同的性能问题,这些问题导致 with 现在被弃用 - 有大量的优化无法发生,因为您在您尝试执行此操作之前,无法确定将调用哪个方法。

关于javascript - 在 ES6 中,为什么不使用 this 就不能引用同级方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44839041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com