javascript - 构建我的 JS 库,几个问题

标签 javascript oop frameworks local-storage

我正在构建一个库 (https://github.com/OscarGodson/storageLocker),更确切地说是一个 localStorage 包装器,但是因为这是我第一次尝试 OO JavaScript,所以我仍在学习并且我有一个几个问题。

  1. 我在其他库中看到,有时它们将它们包装在匿名函数中。我应该,还是应该用这个来做?如果是这样,如何不破坏任何东西?

  2. 对于内部API(基本上就是内部函数)应该怎么写?应该将它们添加到主要对象,例如storageLocker.prototype.myInternalFunction() 还是在我的脚本中随机出现 myInternalFunction()?我不希望这些函数是全局的......例如,其中一个函数只是检查 JSON 中的一堆项目,看看它们的对象,然后检查对象类型是什么(比如 Date( )) 然后进行转换。

  3. 我应该如何/在何处将全局变量添加到我的脚本变量?例如我有一个名为 patterns 的变量,类似于 var patterns = {"date":/\/Date\(([0-9]+)\)\//}var patterns = {"date":/\/Date\(([0-9]+)\)\//} code> 我应该如何将它添加到我的脚本中?

非常感谢。我想以正确的方式编写我的脚本,所以我想问问你们。我不知道本地有任何 JS 人员会做任何 OO JS,他们都是老派类型...

最佳答案

我会说:

1) 这种技术的目的是不污染全局命名空间。这是一件好事。 在下面的示例中,您可以看到您与图书馆的所有交互都是通过一个对象 MyLibrary。公共(public)API是匿名函数的返回值。

var MyLibrary = function() {
// private
   this.InternalVariable = 'some value';

   function internalFunction(x,y) {
      return x + y;
      }

     function getInternalVariable() {
    return this.InternalVariable;
}
// public
   return {
      publicVariable : '1.0',
      publicFunction : function(x,y) {
         return x + y
         },
 accessInternalVariable : function() {

     return getInternalVariable();
     }
      }
   }();

2) 另见上面关于如何放置“内部”函数的示例

3) 如果你的全局变量是某种配置选项,我只是公开 setter/getter 并保持变量“私有(private)”

关于javascript - 构建我的 JS 库,几个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4299725/

相关文章:

php - 将现有应用程序迁移到什么是一个好的 PHP 框架?

python - 在 Django 中,将 urls.py 重定向到的 Python 文件放在哪里?

javascript - jQuery "hasParent"

PHP动态实例化

java - 在 RecyclerView 的单个界面中使用多个 onClick 方法

java - 为酒店设计类(class)

javascript - 使用 dojo.xhrget() 方法在 Dojogrid 中显示数据

javascript - 如何在Unity中获取起始x位置和结束x位置?

javascript - Window 对象通过 typeof 对象测试,但 hasOwnProperty 导致错误

ios - 防止进入静态库代码