我正在使用 introjs 库。

查看原始代码 here

我希望能够编写 var = new IntroJs() 而不是调用 start() 方法。

我怎样才能做到这一点?

最佳答案

为什么不简单地包装 introJs 提供的工厂并在您的包装器中调用它?

您可以使用以下方法在外部执行此操作(未经测试):

var introJsWrapper = function(targetElm) {
    var ijs = introJs(targetElm);
    ijs.start();
    return ijs;
};

或者,您可以在 introJs 代码的分支中执行此操作,方法是将其作为主函数的属性公开,例如:
var introJs = function (targetElm) {
    if (typeof (targetElm) === 'object') {
    // ...
}
introJs.autoStart = function(targetElm) {
    var ijs = introJs(targetElm);
    ijs.start();
    return ijs;
};

请注意,在 introJs 中, main 函数只是一个非常薄的参数测试/更改包装器,已经围绕内部构造函数。间接调用它会调用构造函数。因此,据我所知,确实没有必要直接访问这个内部构造函数。

10-08 15:48