我正在测试我的一个函数,我想测试是否使用该代码中的正确参数调用特定函数。
因此,我像这样覆盖了原始函数:
var oldSort = sort;
sort = function(array) {
this.arrayToSort = array;
}
然后我执行它并检查属性 sort.arrayToSort
是否设置为我传入的值并重新分配原始函数:
sort(myArray);
deepEqual(myArray, sort.arrayToSort);
sort = oldSort;
但是,我不能那样访问 sort.arrayToSort
。如何设置函数的属性以实现这一点?现在,我在 sort 函数之上声明了一个变量并设置了它,但我宁愿将它作为函数的属性以保持其范围较小。这可能吗?
最佳答案
听起来你想要 arguments.callee
,它指的是函数本身,而不是它绑定(bind)到的对象。
var oldSort = sort;
sort = function(array) {
arguments.callee.arrayToSort = array;
}
关于JavaScript:如何为函数设置属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5791522/