JavaScript 链接函数/使用 IIFE 表达式扩展函数

标签 javascript c# jquery function chaining

我一直在寻找一种以简单的方式扩展函数的方法,例如C# extension method .

我尝试了在本文 Method Chaining in JavaScript 中找到的以下语句并且效果很好。

var FOO = function(){
     this.whateverFunc = function(){
         console.log("whatever func");
     }
};
FOO.prototype.first = function(){
     console.log("first func");   
     return this;  
};
FOO.prototype.second = function(){
     console.log("second func");   
     return this;  
};

然后我可以链接它:

 var foo = new FOO();
 foo.first().second();
 //Output
 //first func
 //second func

但是:我的项目具有以下“模式”:

var FOO = (function(){
    var foo{
        firstFunc: function(){
            //implement
        },
        secondFunc: function(){
            //implement
        },
    }
    return foo;
}());

即使我不使用 IIFE,它也不起作用。

 var FOO = function() { var foo{}; return foo; };

有没有办法在该模式中使用链接函数?我怎样才能做到这一点(如果可能的话!):

FOO.first().second();

谢谢。

最佳答案

以下代码的唯一问题

BUT: My projects has the following "pattern":

foo 声明处缺少 =

如果 IIFE 使用箭头函数,则调用括号应该是 IIFE 的最后一部分,而不是在外括号内。

var FOO = (function() {
  var foo = {
    firstFunc: function() {
      //implement
      console.log(1);
      return this
    },
    secondFunc: function() {
      //implement
      console.log(2);
      return this
    }
  }
  return foo;
})();

FOO.firstFunc().secondFunc()

关于JavaScript 链接函数/使用 IIFE 表达式扩展函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46503827/

相关文章:

c# - 使用 Roslyn for C#,如何获取构成返回类型的所有属性的列表?

c# - 如何使用 linq 表达式展平嵌套对象

jQuery 淡入从左到右

javascript - 如何使用 .animate() 显示隐藏文本?

javascript - 每个 ip/24hs 显示一次 div 在 chrome 中不起作用

javascript - 缩略图视频react-native-image-picker

c# - winform 中的 OnPaint - .NET Compact Framework 3.5

javascript - 为什么 RxJS Observable 不能在 Vue.js 应用程序 div 中工作?

javascript - location.state 因 gatsby 构建而失败

javascript - 在 JavaScript 中获取页面加载开始时间