gpt4 book ai didi

javascript - jQuery 函数扩展的范围问题

转载 作者:行者123 更新时间:2023-11-30 17:29:22 24 4
gpt4 key购买 nike

我正在尝试扩展一个对象,并且该对象包含多个函数。我无法解释它,所以让我向您展示我的代码。让我们从有效的开始:

(function ($) {
$.fn.extend({
Hello: function() {
console.log("Well, hello back!");
console.log($(this));
}
});
})(jQuery);

在 HTML 中:

<script>
$(document).ready(function() {
$('.target').Hello();
});
</script>

如预期的那样,$(this) 的控制台日志为我提供了被调用方元素“target”。

现在,让我们尝试一下:

(function ($) {
$.fn.extend({
Response: {
Hello: function() {
console.log("Well, hello back!");
console.log($(this));
}
}
});
})(jQuery);

在 HTML 中:

<script>
$(document).ready(function() {
$('.target').Response.Hello();
});
</script>

这还是吐槽“嗯,你好回来了!”在控制台中,但是当我使用 $(this) 时我不再得到被调用者。我得到的是 Hello 函数。

如何获得被调用者?我已经尝试过 this.parent,但它不起作用。请帮忙!

最佳答案

正如其他人所指出的,您无法真正做到您所要求的,但您可以做一些看起来几乎相同的事情。

通过用闭包捕获“this”,您可以在对象结构中进一步访问它:

$.fn.extend({
Response: function () {
var self = this;
return {
Hello: function () {
console.log(self);
}
};
}
});

$('.target').Response().Hello();

关于javascript - jQuery 函数扩展的范围问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23481915/

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