微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JavaScript中的private和public字词到底有多保留?

如何解决JavaScript中的private和public字词到底有多保留?

| 每次构建JS库时,我都有这种概念:
(function(window,undefined){
  var LibName = function(){
    var privateAPI = {
      method: function(){}
    };
    var publicAPI = {
      publicmethod: function(){}
    };
    return publicAPI;
  }
  window.LibName = LibName;
})();
但是我一直渴望只做:
(function(window,undefined){
  var LibName = function(){
    var private = {
      method: function(){}
    };
    var public = {
      publicmethod: function(){}
    };
    return public;
  }
  window.LibName = LibName;
})();
但是我从来没有做过,因为那些都是保留字。他们到底有多保留?浏览器会失败吗?在我的测试中,一切似乎都正常,但是我缺少什么吗?     

解决方法

        https://developer.mozilla.org/zh-CN/JavaScript/Reference/Reserved_Words 和 官方规范为http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf。 它们在7.6.1.2中列为“保留供将来使用”。     ,        始终假定使用保留字不当会导致应用程序失败。 诸如
public
和like3ѭ之类的单词是将来保留的单词,因此即使它们现在可以使用,将来也可能不会使用。     ,        我不建议使用私人和公共场所。但是只有将严格模式与“使用严格”一起使用,您会得到一个错误:https://developer.mozilla.org/en/JavaScript/Strict_mode 如果您想确保它将来可以使用,则必须使用括号:
this[\"private\"] = {
  method: function() {}
}
我更喜欢将var缩短为\“ pub \”和\“ priv \”。所以我使用这样的模式:
namespace.decorator = function (pub,priv) {
  pub = pub || {};
  priv = priv || {};
  //namespace.decoratorToExtend(pub,priv);
  pub.method = function() {alert(pub.prop)};
  return pub;
}
var instance = namespace.decorator({prop:\'hello world\'});
instance.method();
    ,        根据我对javascript中保留字的经验,该代码将因诸如语法错误之类的错误而出错。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。