在JavaScript的成员方法中缩短对象名称
Shortening the Object name inside the member method in JavaScript
我正在使用Object Literal模式编写许多JavaScript小部件和小应用程序。
我做的一件事是在其中一个方法中,我将应用程序名称缩写为"app"。"
我这样做主要是因为这样更容易编写,而且我也知道这样会有一点性能增益。
var ApplicationName = {
property : "foo",
methodOne : function(){
var app = ApplicationName;
return app.property;
},
init: function(){
var app = ApplicationName;
app.methodOne();
}
}
ApplicationName.init();
这种方法有什么问题吗?
我不认为你的方法有什么错,但这不是绝对必要的(你可以进一步缩短它)。像这样调用init
:
ApplicationName.init()
…将"init
"中的"this
"的值设置为"ApplicationName
"。它允许你这样做:
var ApplicationName = {
property : "foo",
methodOne : function(){
return this.property;
},
init: function(){
return this.methodOne();
}
}
你的方法没有问题。我不知道下面的模式是否对你也有帮助:
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()
方法必须首先调用,但我想它是无论如何:-)
这种方法没有问题。事实上,建议使用较小的javascript文件,因为这样可以节省服务器和客户端的时间和带宽。但是,如果您介意站点中的小文件,您最好使用网络上可用的几种工具之一来压缩javascript,而不是应用这些小的更改。如果你有一个带有Ctrl+Space(即自动完成!)功能的IDE,那么输入它们应该不难。您可以将压缩任务留给压缩工具执行。
正如你所说的,性能的提高可能只有几毫秒,所以通常人们也不介意这一点。
总的来说,你写的是安全的,但是性能和文件大小没有明显的变化,所以人们想要喜欢还是不喜欢
相关文章:
- 面向对象JavaScript中的私有函数
- 对象 Javascript 中的标签无效 - 想要添加事件列表器
- 将字符串转换为对象 javascript/jquery
- 正在检查对象javascript中是否存在嵌套属性
- 时间-日期对象JavaScript getUTCMilliseconds
- 仅在对象(javascript)中解析值
- 使用对象(JavaScript或jQuery)填充选择下拉列表
- 引用另一个对象javascript中的对象
- 如何删除列表中的对象?Javascript nodejs和下划线
- 无法从日期对象javascript获取日期和月份
- 如何在if语句中使用对象-Javascript
- 对象javascript错误
- 对象Javascript的少数实例
- 位置对象Javascript
- 将字符串传递到对象javascript中
- 获取对象Javascript或jQuery的最后一个值
- 鼠标接近对象Javascript
- 这个mixins代码是书中的错误吗;面向对象JavaScript的原理”;
- 使用闭包编译器编写更好的面向对象JavaScript完整示例代码
- 访问对象javascript数组中的对象属性值