繁体   English   中英

ES6中原型的等价物

[英]Equivalent of Prototype in ES6

我开始在ES6中使用JavaScript背景。 我有个问题。 我有一个ES6类,如下所示:

class User{
 constructor(){
 }

 doSomething(){
 }
}

我的问题是每次实例化这个对象时都会创建doSomething方法吗? 在之前的JS中,我们可以取出doSomething并使用“prototype”创建它以确保doSomething被创建一次,而不是每次我们实例化对象时。 但是,我注意到在ES6中实现相同效果的正确方法。 任何帮助,将不胜感激。

我的问题是每次实例化这个对象时都会创建“doSomething”方法吗?

不。 class语法或多或少只是构造函数+原型的语法糖 即结果(几乎)相当于:

function User() {}
User.prototype.doSomething = function() { };

看看Chrome产生的结果:

在此输入图像描述

但是,我注意到在ES6中实现相同效果的正确方法。

如上所述, class为你做到了。 引入class是使prototype上的构造函数和设置方法更容易(因此语法糖 )。


如果您想了解更多信息,请查看

  • MDN - 课程

    ECMAScript 6中引入的JavaScript类是JavaScript现有的基于原型的继承的语法糖。 类语法没有向JavaScript引入新的面向对象的继承模型。 JavaScript类提供了更简单,更清晰的语法来创建对象和处理继承。

  • YDKJS - ES6及以上

绝对不。 似乎没有更多绑定方法在ES6中手动原型,但事实是ES6帮助我们在后台执行此操作。
正如MDN所说:

ECMAScript 6中引入的JavaScript类是JavaScript现有的基于原型的继承的语法糖。 类语法没有向JavaScript引入新的面向对象的继承模型。 JavaScript类提供了更简单,更清晰的语法来创建对象和处理继承。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM