gpt4 book ai didi

javascript - 如何扩展 JavaScript 对象/函数以在初始化后公开 API 方法?

转载 作者:行者123 更新时间:2023-11-28 21:23:22 27 4
gpt4 key购买 nike

我想创建一个像这样工作的 JavaScript 应用程序:

  • 有一个名为 bm 的函数/命名空间.
  • 一开始,bm 只是一个函数,它有一个名为 setup 的方法。 ,所以有两种可能:调用 bm()或定义一些设置变量调用 bm.setup(settings) .
  • 使用该库并公开 API bm必须首先通过调用函数进行初始化:bm(url, options) 。如果初始化成功,API 应该被公开,所以bm现在有其他方法,例如 bm.method1 , bm.method2 ,...

我不知道这到底是如何可能的,所以我想听听任何想法、例子或建议。提前致谢。

最佳答案

好处是函数是一流的对象,因此您可以向它们添加方法。然后您的主实例创建函数只需要检查并确保其作为实例调用:

var bm = function(settings) {
if (!(this instanceof bm)) {
return new bm(settings);
}

// Now we are sure we are working with
// a new instance. Let's do stuff here
// to our new object.
}

bm.setup = function(settings) {
return new bm(settings);
}

这可以通过以下任何一种方式调用:

var myObj = new bm();

var myObj = new bm(settings);

var myObj = bm();

var myObj = bm(settings);

var myObj = bm.setup(settings);

关于javascript - 如何扩展 JavaScript 对象/函数以在初始化后公开 API 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5653713/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com