流星辅助方法

时间:2013-08-31 03:07:45

标签: meteor

我想编写一些可以在我的其他JavaScript文件中使用的辅助函数。

says here

  

某些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 : {});

不确定这是否是最好的......但似乎有效。

2 个答案:

答案 0 :(得分:3)

这是奇怪的,你是对的。编写自己的代码,只需将其放在某处即可。这指的是复杂的框架,它们在很多地方都有很多功能,没有人会驯服这些功能。它们只是暴露一个所有权力都来自的根对象。

请阅读&#34;命名空间和模块&#34;在 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);

答案 1 :(得分:0)

如果打算编写Utility方法,则可以使用ECMA6 Script标准编写。

通过在method.js中导出一次来编写方法,并通过导入所需的文件来使用它

例: 在/method.js中导出const MyUtilityMethod = function(){...}

从'./method.js'

导入{MyUtilityMethod}

希望这有帮助。