gpt4 book ai didi

javascript - 如何定义可以链接到其他 Javascript 库的 Javascript 函数?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:02:29 25 4
gpt4 key购买 nike

如何定义可以链接到 jQuery 方法或其他库方法的方法?

假设我有以下代码:

var Calculator = function(start) {
var that = this;

this.add = function(x) {
start = start + x;
return that;
};

this.multiply = function(x) {
start = start * x;
return that;
};

然后我可以按照自己的意愿将这些方法链接到计算器对象:

new Calculator(0)
.add(1)
.multiply(2)

但是如果我想像这样在 jQuery 对象之上链接一个名为“my_method”的方法怎么办:

$(document).append("<p></p>").my_function();
$(document).my_function();

我将如何定义这样的函数?我尝试将 my_function 添加到“Object”类,但这不适用于对象数组:

Object.my_function = function() {
alert(this);
return this;
};

最佳答案

jQuery 允许您通过向 jQuery.fn 添加属性来扩展其对象。

所以:

$.fn.my_function = function() {

};

您还可以使用 jQuery.fn.extend 扩展具有多个属性的 jQuery 对象原型(prototype).

至于其他图书馆——各不相同!如果他们的对象有一个共同的构造函数,你通常可以把你的方法放在他们的原型(prototype)上,这恰好是你的 Object 例子的问题;您需要将您的方法放在 Object.prototype 上,以便它成为查找链的一部分。

例如,您自己的示例可以重写为(这实际上是“常规”“类”的首选):

function Calculator(start) {
this.start = start;
}

Calculator.prototype.add = function(x) {
this.start += x;
return this;
};

Calculator.prototype.multiply = function(x) {
this.start *= x;
return this;
};

关于javascript - 如何定义可以链接到其他 Javascript 库的 Javascript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19072734/

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