我目前正在开展一个项目,我对JavaScript的理解有限,我使用了Prototypes(一个尝试学习它们,两个因为它看起来像当时的好主意)。
我有一个充满Prototypes的JS文件,并按如下方式调用它们:
$(document).ready(function() {
var dash = new Dash();
});
var Dash = function() {
var _ = this;
_.defaults = {
pages: {},
page_name: {},
page_order: []
};
_.init();
};
Dash.prototype.init = function() {
var _ = this;
_.getPages();
_.onClickNewPage();
_.onClickEditPage();
};
Dash.prototype.getPages = function() {
var _ = this;
// calls some ajax
};
几乎所有Prototype方法都只是根据用户想要查看的内容修改页面。
这是使用Prototypes的正确方法吗?如果不是有更好的方法吗?我可以改进什么以及在每个方法中调用var _ = this;
来访问其他方法的内存含义是什么?
道歉,如果这是一个显而易见的问题,但我在Google上发现的只有Cat vs. Dog的例子,它们并不是很有用。
我真的希望在使用最佳实践的同时尽可能提高代码效率。
另请注意:我不会继承任何东西,只是访问不同的方法。
答案 0 :(得分:0)
几乎所有Prototype方法都只是根据用户想要查看的内容修改页面。
关于代码的目的,与原型无关。
我没有继承任何东西,只是经常访问不同的方法。这是使用Prototypes的正确方法吗?
没有。如果既没有继承也没有多个实例(并且在页面中只创建了一个new Dash
),那么使用带有原型方法的类构造函数会过于复杂。没有必要这样做。
如果没有更好的方法吗?
只需使用某种模块模式,将所有这些函数作为声明放在公共作用域中,或者如果要专注于OOP和可扩展性,则使用对象文字。
如果要使模块可重用,请将其包装在返回对象的函数中。
在每种方法中调用
var _ = this;
来访问其他方法有什么内存含义?
本地变量没有任何内存含义,但您的_
存在可读性问题。只需使用标准this.
方法调用方法。