0

他の JavaScript ファイルで使用できるいくつかのヘルパー関数を作成したいと考えています。

それはここに言います:

一部の JavaScript ライブラリは、client/compatibility サブディレクトリに配置した場合にのみ機能します。このディレクトリ内のファイルは、新しい変数スコープにラップされることなく実行されます。

すべてのライブラリをcompatibility. 一般に、「互換性のある」ものは、​​新しいスタイルにアップグレードされていないレガシー コード用です。モジュールをエクスポートして、他のファイルでアクセスできるようにする方法はありませんか?


このパターンを使用すると、次のようになります。

Util = (function(exports) {
    exports.getFileExtension = function(filename) {
        var i = filename.lastIndexOf('.');
        return (i < 0) ? '' : filename.substr(i);
    };

   // more functions

    return exports;
})(typeof Util !== 'undefined' ? Util : {});

それが最善かどうかはわかりません...しかし、うまくいくようです。

4

2 に答える 2

3

それは奇妙でしょう、あなたは正しいです。独自のコードを書き、どこかに置くだけで機能します。これは、あらゆる場所で多くの関数を作成する複雑なフレームワークを指し、そのすべての力が湧き出るルートオブジェクトのみを公開するように誰もそれらを「飼いならす」ことはありません。

http://www.meteor.com/blog/2013/08/14/meteor-065-namespacing-modularity-new-build-system-source-mapsで「名前空間とモジュール」をお読みください 。

これは、作成した他のものとの衝突を回避するための組み込みの保守性を支援します。これは主に名前空間の目的です。

helper または util という名前の独自のヘルパー オブジェクトを用意して、グループ化したものを配置することをお勧めします。

utils = {
  distance_between: function(lat1,lng1,lat2,lng2) {
      var radiusEarth = 3963.1676; // miles radius earth
      var dLat = deg2rad(lat2-lat1);  // deg2rad below
...
  displayHumanReadableTime: function(timestamp){
    var a = new Date(timestamp);
于 2013-08-31T03:27:39.503 に答える