gpt4 book ai didi

javascript - 将参数传递给回调函数而不更改方法(Siesta 测试命名空间)

转载 作者:行者123 更新时间:2023-11-28 08:42:48 24 4
gpt4 key购买 nike

有人知道如何将参数传递给无法更改的回调函数吗?

所以这是我试图实现的代码(这是一个午睡测试方法):

Base.js:

waitForComponentQueryVisible: function (parentNext, parameters) {

var th = this,
query = parameters.query,
scope = th,
callback = callFunct,
timeout = 10000;
//The function inside here (returnToParentTester(parentNext, parameters)) is from Base.js
callFunct = function () {
scope.returnToParentTester(parentNext);
}
this.test.waitForComponentQueryVisible(query, callback, scope, timeout);
},

这里的问题分为两部分:1. 我无法获得正确的范围,因此我可以使用 Base.js 中的 returnToParentTester 方法2. 我想将parentNext传入方法中,但在将其定义为回调时无法这样做

这是我需要作为回调运行的方法:

Base.js:

returnToParentTester: function (parentNext, parameters) {
debugger;
if (parentNext) {
parentNext.call(undefined, parameters);
} else {
this.test.fail('--Developer Error-- undefined parentNext ' +
'variable. All the chains are going to fail');
}
},

最佳答案

I can't get the scope just right so I can use the returnToParentTester method that is found in Base.js

使用call方法更改范围:

Base.returnToParentTester.call(myScope)

I want to pass in parentNext into the method but cannot do that when defining it as a callback

使用匿名函数作为回调并在其范围内传递参数:

$("body").click(function(e){foo(e.target,bar,baz)})

然后让它完成工作:

function foo(myScope, next1, param1)
{
Base.returnToParentTester.call(myScope, next1, param1)
}

引用文献

关于javascript - 将参数传递给回调函数而不更改方法(Siesta 测试命名空间),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20304826/

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