我经常看到这种情况,但我不确定它的目的或优点是什么(如果有的话)。将一个函数或一组函数放在对象内,作为变量的值。
var variableName = { (function() {DO STUFF} )}
我经常看到这种情况,但我不确定它的目的或优点是什么(如果有的话)。将一个函数或一组函数放在对象内,作为变量的值。
var variableName = { (function() {DO STUFF} )}
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>
至今。
基本上,如果函数有一个名字,你可以用它来调用它
变量名.function(args);
在这些类型的对象中,您可以设置将始终存储在对象中的方法,直到您自己刷新或重置数据,如果您想让事物动态化但仍要记住输入数据,这很方便。
你可以像这样制作一个单例对象:
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 变量中。
它还有很多东西,但它是一种保存数据的好方法,希望它有所帮助:)