gpt4 book ai didi

javascript - 使用 javascript 将变量推送到现有函数

转载 作者:行者123 更新时间:2023-12-02 16:43:13 25 4
gpt4 key购买 nike

所以,假设我有一个这样的函数

(function($){
$.fn.test = function(opts){
var _object = $(this),
_opts = $.extend({}, $.fn.test.defaults, opts),
_callback = _opts.objects[1].callback

/* some code here */

_callback() /* calling for a callback */
}

$.fn.test.defaults = {
/* not that important for now */
}
})

这就是我初始化该函数的方式

$('.element').test({ 
option: 0, /* not important */
variable: 1, /* not important */
objects: [
{
"object" : ".element2",
"callback" : false
},
{
"object" : ".element3", /* THIS IS OBJECT № 2 */
"callback" : function(){
/* >>> {THIS PART} <<< */
console.log (this)
}
},
]

因此,在 {THIS PART} 上,它仅返回对象 2 的数据,但我希望回调函数在 _object 元素上运行$.fn.test 这样就会输出$('.element')的数据。我无法将其硬编码,并且不能将 console.log (this) 改为 console.log ($('.element')) - 就像我一样我正在尝试制作更动态的功能。因此,当它在此处调用回调时,我需要将 this 替换为我的 _object 元素 _callback()/* 调用回调 */ .我绝对不能使用替换,因为它不是字符串,但我有一个想法将函数转换为字符串,更改我需要的内容,然后转换为函数 - 但这听起来像是不合适的解决方案。

你心里有什么想法吗?你有什么建议?

提前谢谢您。

最佳答案

我不确定我是否理解正确,但如果你想获得 $.fn.test 范围,你可以尝试这样的事情:

$.fn.test = function(opts){
var _object = $(this),
_opts = $.extend({}, $.fn.test.defaults, opts),
_callback = _opts.objects[1].callback;

_callback(this);
}

$('.element').test({ 
option: 0,
variable: 1,
objects: [
{
"object": ".element2",
"callback": false
},
{
"object": ".element3",
"callback" : function(parentScope){
console.log(parentScope);
}
},
]
});

关于javascript - 使用 javascript 将变量推送到现有函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27322325/

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