求解释 因为我开始学的时候就是直接学的es6,一直都是用ES6的class方式,function没怎么使用过。
早年JS没有class
语法,所以创建对象使用new (function)
的方式来实现。
现在出了class
、extends
语法,就是帮助快速构建一个对象,而不需要手动去指定各种prototype
之类的东西。
可以认为class是一个语法糖,因为他的功能不使用class关键字完全可以实现
我说下个人理解吧,但我对 js 这块不是很熟,也没有看过相关书籍,只能说是个人的片面了解理解与积累。
js 中 class 和 function 其实并没有区别,因为当你在使用过程中,你会发现,不管是你想定义一个 class 还是定义一个 function ,其实最终的使用都是一样的。new 调用,因为 function 它既是一个方法也是一个对象,而 class 是一个对象,也是方法的结合体。function 内部可以使用对象的特性,为它自身创建新的方法,新的属性进行调用。而 class 更不用说了。
个人觉得,如果非要区分,那应该是封装的合理性(方便维护,方便使用),问题了。
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
ES6 的class可以看作只是一个语法糖
与下列方式等价