javascript: 调用默认函数?

javascript: call a default function?

我需要做一些这样的 js 功能:

let text =function()
{
    this.main = ...;
    this.toArr = ...;
};

let t = new text();

console.log( t() ); // call a function 'main' in text;
t().toArr(); // call a function 'toArr' in text;

请深入阅读MDN's Inheritance部分。

这是一个简单的用法,如下所示:

let text = function()
{
    this.main = function(){
      return {a:1};
    }
    this.toArr = function(){
      return [1,2,3];
    }
};

let t = new text();

console.log( t.main() ); // call a function 'main' in text;
console.log(t.toArr()); // call a function 'toArr' in text;

试试这个:

let text = function (myarg) {
    // Usage: var t = new text(<arg>);
    this.uniqueProperty = "test";
    var main = () => {
        // main code
        return {
            toArr: () => {
                return [myarg, this.uniqueProperty];
            }
        };
    };
    return main;
}

var t = new text("hey world");

console.log(t());
console.log(t().toArr());

来电与你的问题相同

注意:你现在的主要功能returns对象。


这是如何工作的?

您调用 new text("arg"),但构造函数 returns 主函数而不是 this。主要功能 returns 对象具有 toArr 功能,可以通过 new text("arg")().toArr 代码访问。为什么我把这两个功能都放在 () => {} 中?答案很简单——这就是访问文本实例属性的方法。所以我们可以访问独特的 text 属性。否则,this 将是 main 函数引用。