JavaScript 对象的单例行为

Singleton behaviour of javascript object

本文关键字:单例行 对象 JavaScript      更新时间:2023-09-26

我想要一个单例类型的对象,其值在跨多个页面的多个事件中发生变化。此对象用于绑定各个页面中的 UI。

我有一个"主.js"文件:

var obj = { flag : false } ;
 // call back method
 function click() { 
  obj.flag = true;
  }

在我的下一个.js文件中

 // call back method
  function click() { 
  alert(obj.flag); // **alerts false** . It should alert **true** instead.
  }
除了

使用 window.name 属性之外,有没有办法保留该值? 还是我遵循了错误的方法

您可以使用

HTML5 localStorage。如文档(Safari,Mozilla等)中所述,localStorage支持字符串键/值对。

因此,您需要使用 JSON.stringify 将对象保存在存储中。

var obj = { flag : false };
// Save the object in the storage
localStorage.setItem('obj', JSON.stringify(obj));
// Get the object from storage
var objectData = localStorage.getItem('obj');
var originalObject = JSON.parse(objectData );
alert(originalObject.flag);

请参阅以下小提琴:http://jsfiddle.net/FdhzU/