在javascript中调用方法和字段时避免对象

在javascript中调用方法和字段时避免对象,javascript,object,Javascript,Object,我有一些javascript代码,在我看来代码很凌乱。所以我想做一些事情,让我在调用方法和处理字段时避免使用“object”这个词。我能用它做点什么吗 object = { init: function() { object.someField = 1; object.anotherField = 2; } }; object.someMethod = function(){ object.anotherMethod(); }; obj

我有一些javascript代码,在我看来代码很凌乱。所以我想做一些事情,让我在调用方法和处理字段时避免使用“object”这个词。我能用它做点什么吗

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您具体对什么感到困惑?