0

如果我有一个使用 Javascript 函数,像这样......$(this)[0].element.id;

updateElement(){
$(this)[0].element.id;
}

我正在使用 Qunit,有没有一种方法可以模拟'this'我希望能够测试这个功能。

4

2 回答 2

3

使用函数apply或对象,您可以更改调用函数时call的值:Functionthis

var mock = ...

updateElement.call(mock);

thismockupdateElement上面的调用中引用。

于 2014-01-28T18:12:06.313 回答
1

我假设,this那是指一些 jQuery 对象。您可以使用 jQuery 函数创建相应的对象,然后bind()将对象附加this到您的实际函数中:

// prepare the DOM objects
var $elem = $( '...' );

// prepare a bound function
var boundFct = updateElement.bind( $elem );

// execute your function
boundFct();
于 2014-01-28T18:10:56.383 回答