1

我有以下简单的例子。

(function() { 
var note = {
   show: function() {
        alert('hi');
    }
 };
})();

使用时

note.show();

显示错误信息ReferenceError: note is not defined。但是当使用没有被匿名函数包围的笔记对象时工作正常。

现在,如何在匿名函数之外或其他页面中使用笔记对象?

4

1 回答 1

3

我相信您打算使用类似模块模式的东西。一个非常基本的例子是:

var note = (function() { 
 return {
   show: function() {
        alert('hi');
    }
 };
}());

这仅在您内部有闭包时才有用,例如:

var note = (function() { 
   var someNumber = 10;
   return {
      show: function() {
         alert('hi');
      },
      someNumberTimes(n) {
         return someNumber * n;
      }
   };
}());
console.log(note.someNumberTimes(5)); // 50
于 2013-04-24T17:41:53.257 回答