使用JavaScript揭示模式创建对象,让你的代码更加高效优美!

5 min read

使用揭示模式来创建对象,我们可以使用闭包来隐藏数据和方法:

var myObject = (function() {
  var privateData = "I'm hidden!";
  
  function privateMethod() {
    console.log("This method is also hidden!");
  }
  
  return {
    publicMethod: function() {
      console.log("This method is public!");
    }
  }
})();

myObject.publicMethod(); // Output: "This method is public!"
myObject.privateData; // Output: undefined
myObject.privateMethod(); // Output: TypeError because privateMethod is not a property of myObject

在上面的示例中,我们创建了一个称为 myObject 的对象,并使用闭包来隐藏 privateDataprivateMethod。只有在对象内部才可以访问它们,因为它们被视为私有的。我们返回一个只有 publicMethod 的对象字面量,它是该对象的公共接口。可以通过 myObject.publicMethod() 来访问该接口。

请注意,私有数据和方法不能从对象的外部访问。也就是说,myObject.privateDatamyObject.privateMethod() 都是 undefined,因为它们都是私有的,并不属于对象的公共接口。