将JavaScript函数放在变量的对象中

时间:2013-05-14 07:59:24

标签: javascript function variables object

我经常看到这一点,但我不确定它的目的或优点是什么(如果有的话)。 在对象内部放置一个或多个函数集,作为变量的值。

var variableName = { (function() {DO STUFF} )}

2 个答案:

答案 0 :(得分:0)

基本上,如果函数有一个名称,你可以用

调用它

variableName.function(参数);

在这些类型的对象中,您可以设置将始终存储在对象中的方法,直到您自己刷新或重置数据为止,如果您想要使事物动态但仍然记住输入数据,这很方便。 / p>

你可以像这样制作一个单身对象:

var Singleton = {

    data1 : '',

    functionName : function() {

        this.data1 = document.getElementById('formfield1').value;    

    }

}

所以如果你有一个id为formfield1的表单域

<input type="text" id="formfield1" value="" />

将此函数绑定到例如

的提交按钮时
<button onclick="Singleton.functionName();">Save</button>

您的信息将存储在对象的data1变量中。

它还有很多,但它是一种保存数据的好方法,希望它有所帮助:)

答案 1 :(得分:0)

JavaScript使用全局变量。这意味着每个脚本都可以访问和修改所有变量以及可能的具有相同名称的覆盖变量。 要保护自己的脚本,可以使用全局变量(如var MyScript = ...)并将所有内容写入其中。 举个例子,我写了一个简单的脚本来在html文件之间导航。 你可以看到一个名为'Navi'的变量,它封装了里面的所有东西。 它包含变量和函数,并且(在这种情况下)只允许返回的名称进行访问。 如果我在Navi中编写下一个和上一个函数,它们可能会被其他一些脚本覆盖。

var Navi = (function(){
    var currentPage = 0;
    var pages = [];
    pages[0] = "first.html";
    pages[1] = "second.html";
    pages[2] = "third.html";

    var next = function next(){
        if(currentPage < pages.length - 1){
            currentPage++;
            location.href = pages[currentPage];
        }
    };

    var previous = function previous(){
        if(currentPage > 0){
            currentPage--;
            location.href = pages[currentPage];
        }
    };

    return{
        next: next,
        previous: previous,
        currentPage: currentPage,
        pages: pages
    };
})();

从html文件中调用它:

<a href="javascript:Navi.previous();">previous page</a>
<a href="javascript:Navi.next();">next page</a>

到目前为止。