在我们公司,我们正在启动一个新的 Web 项目,我是公司的新人,以前的应用程序都是这样准备文档的。 (顺便说一句,我们正在使用 jQuery)
var AccountingMovements = function AccountingMovements() {
//sometimes they use var _that = this;
var _this = this;
_this.Constructor = function Constructor() {
//here goes the code when document is ready
}
}
var $AccountingMovements = new AccountingMovements();
$(document).ready($AccountingMovements.Constructor);
当我问我的同事他们为什么使用这种模式时,他们告诉我 Javascript 代码必须有自己的构造函数,而且代码应该这样写,当我问这是否是公司规定时,他们说不是,没有公司标准规定应该这样写。似乎他们只是这样做是因为“它一直都是这样做的”,而不是说这是一种常见的 javascript 标准化做法或类似的做法。
在我身边,我学会了使用 IIFE 并准备好 jquery 文档,我在 javascript 专家给出的许多 Web 示例、实际使用说明,甚至维基百科文章中都找到了它。我这样写我的代码
(function (code) {
code(window.jQuery, window, document);
}(function ($, window, document) {
$(function () {
//here goes the code when document is ready
});
}));
我的开发负责人(对 javascript 不太了解,因为他来自桌面开发背景,但在业务逻辑方面他很擅长)告诉我,因为这是一个新项目,每当我看到一个新的解决方案,一个更好的实现,或者对工作有帮助的东西,我必须毫不犹豫地告诉他,他会和其他领导讨论。所以我告诉他我的方法,我不明白旧的构造函数代码的目的,而且没有人给我一个令人信服的解释,他告诉我自己去看看是否有什么东西支持那个方法,因为我给他看备份矿的资源,为了告诉命令万一我的更好,扔掉其他方法。
看完这个故事,我的问题是,
javascript 构造函数方法有名称吗?我的意思是,这是一个实际的标准、实践或建议吗?因为我找不到任何关于它的信息。可能是我错了,构造函数方法更好或有效,但因为我没有相关信息,所以我需要确定才能讨论我的实现。
提前致谢。
最佳答案
Constructor
这个词在JavaScript语言中没有特殊含义;只有你的同事赋予它的意义。一些 JS 框架如 dojo 创建了类似命名的函数,但它们也有专门的、集中的对象定义方式,以及它们调用构造函数的集中位置(而不是在下一行手动调用它,为错误留出空间)
相信任何 JavaScript 对象都必须等到 DOM 准备就绪后才能构造它们自己,这也可能会产生误导。你认为 JQuery 是如何创建自己的? (而且它必须很早,在人们编写 $().ready
来制作他们的 onload 函数之前)
我不知道您的同事编写对象的方式有任何具体问题,只要他们为当前的 Constructor
函数分配非常不同的语义即可。上面的代码如var _this = this
就是构造函数。 was-Constructor 函数的内容最好用onDOM
或类似的方式来描述。如果他们更愿意遵循这个系统,最好让他们的类(class)系统通过一个中央图书馆;无论是您自己的还是其他人的。
关于Javascript - 这是一个好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31165361/