在javascript中调用方法和字段时避免对象
我有一些javascript代码,在我看来代码很凌乱。所以我想做一些事情,让我在调用方法和处理字段时避免使用“object”这个词。我能用它做点什么吗在javascript中调用方法和字段时避免对象,javascript,object,Javascript,Object,我有一些javascript代码,在我看来代码很凌乱。所以我想做一些事情,让我在调用方法和处理字段时避免使用“object”这个词。我能用它做点什么吗 object = { init: function() { object.someField = 1; object.anotherField = 2; } }; object.someMethod = function(){ object.anotherMethod(); }; obj
object = {
init: function() {
object.someField = 1;
object.anotherField = 2;
}
};
object.someMethod = function(){
object.anotherMethod();
};
object.anotherMethod = function(){
alert('anotherMethod');
};
试试这个关键字 查看显示模块模式:
var object = (function () {
var someField,
anotherField,
init = function () {
someField = 1;
anotherField = 2;
},
someMethod = function () {
anotherMethod();
},
anotherMethod = function () {
alert(someField);
};
return {
init: init,
someMethod: someMethod
};
})();
object.init();
object.someMethod();
这种方法还有一个额外的好处,就是支持私有字段。您的问题是构造脚本的“好”方法,有效地将您的函数从直接全局范围中移除 如果您有一个带有方法的脚本:
function A()
{
//Important code.
}
在某个点上,您添加了另一个插件/不同的脚本文件,在该页面的下一个位置,使用了一个声明方法A的:
function A() {
//Do something else
}
然后代码将使用A的第二个定义,而不是调用您的重要代码。追踪这一点可能很棘手。通过在问题中使用原型代码,您可以在某种程度上“命名”您的代码,并大大减少方法名称发生意外冲突的可能性,因为您在全局范围中放置的唯一项是“对象”名称。只需将其更改为另一个词……我想避免使用任何词。是真的吗?这只是一个例子,但是在我的项目中,我有很多方法和领域。如果你创建了更多的实例,你可以考虑使用缩缩函数。如果您想避免使用object或this,那么使用闭包的bergis答案可能适合您。关于构造函数和原型的更多信息可以在这里找到:避免“this”也是真的吗?不。在某些时候你需要它。这只是你如何引用你的代码所在的对象。@alex.seluta:为什么不呢?如果您想询问如何关闭,请阅读关于闭包的内容。@alex.seluta您具体对什么感到困惑?