我正在使用 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 函数只是一个非常薄的参数测试/更改包装器,已经围绕内部构造函数。间接调用它会调用构造函数。因此,据我所知,确实没有必要直接访问这个内部构造函数。