通过匿名函数包含对象时,显示错误消息

时间:2013-04-24 17:38:15

标签: javascript anonymous-function

我有以下简单的例子。

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

使用时

note.show();

显示错误消息ReferenceError: note is not defined。 但是当使用没有通过匿名函数封装的note对象时,工作正常。

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

1 个答案:

答案 0 :(得分: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