流星辅助方法

问题描述 投票:0回答:2

我想编写一些帮助函数,我可以在其他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 : {});

不确定这是否是最好的...但它似乎工作。

meteor
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);

0
投票

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

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

例如:/method.js中的export const MyUtilityMethod = function(){...}

从'./method.js'导入{MyUtilityMethod}

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.