gpt4 book ai didi

javascript - JavaScript 中的 Java 式 OOP 和 jQuery 失败

转载 作者:可可西里 更新时间:2023-11-01 02:21:52 28 4
gpt4 key购买 nike

我正在做一个项目,我真的在尝试编写面向对象的 JavaScript 代码。我刚刚开始阅读Douglas Crockford's JavaScript: The Good Parts我很快开始意识到用 JavaScript 编写类似 Java 的 OOP 将是一项艰巨的任务。

到目前为止,我已经写了类似下面的东西......

// index.html
$(document).ready(function() {

$().SetUpElements();
});

// this is in a different js file
$.fn.SetUpElements = function() {

// do stuff here
$().UpdateElement();
};

// this is in yet another different js file
$.fn.UpdateElement = function() {

// do stuff here
var element = new Element(id, name); // continue doing work
};

function Element(id, name) {

var id = id;
var name = name;

// other stuff
};

...我的想法是,我希望尽可能地重构和解耦对象/函数;我想尽可能多地重用代码。我将我的大量代码分布在不同的 .js 文件中,目的是将特定的相关代码组合在一起,就像您在 Java 中编写不同的类一样。

随着我对 jQuery 的了解越来越多,我意识到符号 $.fn.foo = function() { ... }; 实际上是在添加这个 foo 函数到所有 jQuery 对象的原型(prototype)。这是我应该做的事吗?我是否以某种方式滥用了 jQuery?

对于如何改进我在 JavaScript 中的 OOP 方法的建议,我将不胜感激,并且我希望看到对讨论该主题的资源/教程/文章/等的引用。即使选择了答案,也请随时提供反馈。我正在寻求您的建议...这就是我发帖的原因:)

** 注意:我不是在开发 jQuery 插件。我正在开发一个网络应用程序并大量使用 jQuery。

最佳答案

如果不是jquery插件,我会这样写:

    var app = {
init: function(){
app.SetUpElements();
},
SetUpElements: function() {
return 'something';
},
etc: function() {

}
};
$(document).ready(app.init);

关于javascript - JavaScript 中的 Java 式 OOP 和 jQuery 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5478041/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com