我正在编写大量使用对象文字模式的JavaScript小部件和小应用程序。
我做的一件事是在其中一个方法中,我将应用程序名称缩写为“app”。
我这样做主要是因为它更容易编写,而且我也知道这会带来很小的性能提升。
var ApplicationName = {
property : "foo",
methodOne : function(){
var app = ApplicationName;
return app.property;
},
init: function(){
var app = ApplicationName;
app.methodOne();
}
}
ApplicationName.init();这种方法有什么问题吗?
发布于 2011-12-10 00:14:43
我不认为您的方法有任何问题,但它不是严格必要的(您可以进一步缩短它)。像这样调用init:
ApplicationName.init()将init内部的this的值...sets为ApplicationName。它允许您执行以下操作:
var ApplicationName = {
property : "foo",
methodOne : function(){
return this.property;
},
init: function(){
return this.methodOne();
}
}发布于 2011-12-10 00:07:56
你的方法没有问题。我不知道下面的模式是否对你也有帮助:
var ApplicationName = (function () {
var app;
return {
property: "foo",
methodOne: function() {
return app.property;
},
init: function() {
app = ApplicationName;
app.methodOne();
}
}
})();
ApplicationName.init();
console.log(ApplicationName.property); // "foo"这样,您只需为ApplicationName指定别名一次。这确实意味着必须首先调用init()方法,但我猜不管怎样:-)
发布于 2011-12-10 00:10:38
这种方法没有任何问题。事实上,推荐使用较小的javascript文件,因为它们可以节省服务器和客户端的时间和带宽。然而,如果你介意你的站点中的小文件,你最好用网络上可用的几个工具中的一个来压缩你的javascript,而不是应用这些小的改变。如果你有一个好的带有Ctrl+Space的集成开发环境(即自动完成!)功能,那么将它们全部输入就不难了。您可以将压缩留给压缩器工具。
正如您所说,性能的提高可能只有几毫秒,所以通常人们也不会介意这一点。
总体而言,你写的东西是安全的,但在性能或文件大小方面没有明显的变化,所以不管你喜欢与否。
https://stackoverflow.com/questions/8448146
复制相似问题