我更喜欢在大型项目中使用 OOP,比如我现在正在做的项目。我需要在 JavaScript 中创建几个类,但如果我没记错的话,至少有几种方法可以做到这一点。语法是什么,为什么要这样做?
我想避免使用第三方库——至少一开始是这样。 在寻找其他答案时,我找到了文章 Object-Oriented Programming with JavaScript, Part I: Inheritance - Doc JavaScript ,它讨论了 JavaScript 中的面向对象编程。有没有更好的继承方式?
这是不使用任何外部库的方法:
// 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基于 - 的继承方案。
prototype
此外,还有许多流行的 JavaScript 库,它们有自己的风格来近似 JavaScript 中的类功能。你至少要检查一下Prototype和jQuery。
决定哪一个是“最好的”是在 Stack_Overflow 上发起一场圣战的好方法。如果你正在着手一个大型的 JavaScript 密集型项目,那么绝对值得学习一个流行的库并按照他们的方式去做。我是原型人,但 StackOverflow 似乎更倾向于 jQuery。
就只有“一种方法”而言,没有任何对外部库的依赖,我写的方式差不多就是这样。