小编典典

哪些技术可用于在 JavaScript 中定义一个类,它们的取舍是什么?

all

我更喜欢在大型项目中使用 OOP,比如我现在正在做的项目。我需要在 JavaScript
中创建几个类,但如果我没记错的话,至少有几种方法可以做到这一点。语法是什么,为什么要这样做?

我想避免使用第三方库——至少一开始是这样。
在寻找其他答案时,我找到了文章 Object-Oriented Programming with JavaScript, Part I:
Inheritance - Doc JavaScript
,它讨论了
JavaScript 中的面向对象编程。有没有更好的继承方式?


阅读 91

收藏
2022-03-03

共1个答案

小编典典

这是不使用任何外部库的方法:

// Define a class like this
function Person(name, gender){

   // Add object properties like this
   this.name = name;
   this.gender = gender;
}

// Add methods like this.  All Person objects will be able to invoke this
Person.prototype.speak = function(){
    alert("Howdy, my name is" + this.name);
};

// Instantiate new objects with 'new'
var person = new Person("Bob", "M");

// Invoke methods like this
person.speak(); // alerts "Howdy, my name is Bob"

现在真正的答案比这复杂得多。例如,JavaScript 中没有类之类的东西。JavaScript 使用prototype基于 - 的继承方案。

此外,还有许多流行的 JavaScript 库,它们有自己的风格来近似 JavaScript
中的类功能。你至少要检查一下PrototypejQuery

决定哪一个是“最好的”是在 Stack_Overflow 上发起一场圣战的好方法。如果你正在着手一个大型的 JavaScript
密集型项目,那么绝对值得学习一个流行的库并按照他们的方式去做。我是原型人,但 StackOverflow 似乎更倾向于 jQuery。

就只有“一种方法”而言,没有任何对外部库的依赖,我写的方式差不多就是这样。

2022-03-03