随着ES6的到来,出现了class。因此我想知道在JavaScript中何时使用class以及何时使用简单函数。虽然函数也能够创建新对象。
Js Class
只是一种语法糖,用于简化
function SomeClass() {
// this is basically a constructor
this.property = 'some value';
};
SomeClass.prototype.someMethod = function() {
// here you define method logic
}
class
表示法,因为它更简单易写,但本质上并没有改变什么。
在JS中,除了基元(布尔值、数字)之外的所有东西都是从由于函数也能创建新对象。
Object
创建的,因此甚至Array
、String
、{}
或Function
都能够创建新对象,但这并不是像Java或C#这样的面向对象编程语言的意思。prototype
。如果您调用someObject.someMember
,则会在someObject
中搜索someMember
,如果在其中找不到,则引擎将查找someObject.protoype
,通常会找到一些previousObject
。您可以说someObject
是previousObject
的子类,因为它将previousObject
作为其prototype
引用。它与OOP语言不同,但工作方式几乎相同,就像子类化一样。var newObject = {};
newObject.prototype = previousObject;
或者
var newObject = Object.create(previousObject);
或者
function newObject () { ... }
newObject.prototype = previousObject;
或者
class newObject extends previousObject { ... }