我更喜欢在大型项目中使用OOP,比如我现在正在做的项目.我需要用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的继承方案.

此外,还有许多流行的JavaScript库,它们有自己的风格来近似JavaScript中的类功能.你至少要判断PrototypejQuery.

Deciding which of these is the "best" is a great way to start a holy war on Stack Overflow. If you're embarking on a larger JavaScript-heavy project, it's definitely worth learning a popular library and doing it their way. I'm a Prototype guy, but Stack Overflow seems to lean towards jQuery.

就只有"一种方法"而言,没有任何对外部库的依赖,我写的方法基本上就是这样.

Javascript相关问答推荐

事件错误:类型错误:无法读取未定义的属性(读取stopPropagation)

基于每个索引迭代嵌套对象

如何才能拥有在jQuery终端中执行命令的链接?

窗口.getComputedStyle()在MutationObserver中不起作用

实现JS代码更改CSS元素

虚拟滚动实现使向下滚动可滚动到末尾

rxjs插入延迟数据

正则表达式,允许我匹配除已定义的子字符串之外的所有内容

从页面到应用程序(NextJS):REST.STATUS不是一个函数

让chart.js饼图中的一个切片变厚?

第一项杀死下一项,直到数组长度在javascript中等于1

在Odoo中如何以编程方式在POS中添加产品

如何为仅有数据可用的点显示X轴标签?

基于产品ID更新条带产品图像的JavaScript命中错误

将Auth0用户对象存储在nextjs类型脚本的Reaction上下文中

select 2-删除js插入的项目将其保留为选项

如何使用puppeteer操作所有选项

如何检测当前是否没有按下键盘上的键?

输入数据覆盖JSON文件

需要刷新以查看Mern堆栈应用程序中的更改