【发布时间】:2021-10-27 23:04:16
【问题描述】:
在我的场景中,我有接受一些参数(0 个或更多)的回调函数。我已经声明了一个对象全局变量并将其传递给我的回调函数,稍后在代码的某些部分更改它的值,但是当我点击okButton(映射到回调函数)时,函数被调用但参数未定义.有人知道这种方法有什么问题吗?
HTML 代码:
<button id="bindEvents" onclick="BindEvents()">Bind Events</button>
<button id="okButton">Click Me</button>
一些申请页面:
var tempVariable = {};
function BindEvents() {
tempVariable.item1 = 100;
tempVariable.item2 = 200;
tempVariable.item3 = 300;
tempVariable.item4 = 400;
tempVariable.item5 = 500;
}
function callBackFunction(param) {
var size = Object.keys(param).length;
if (size > 0) {
for (var i = 0; i < size; i++) {
alert((i + 1) + ' parameter value: ' + param[i]);
}
}
}
testMe({
okButtonCallback: callBackFunction,
okButtonCallbackParameters: tempVariable
});
Dynamic.js
var testMe = function (properties) {
$(document).ready(function () {
$(document).on('click', '#okButton', function () { properties.okButtonCallback.apply(this, properties.okButtonCallbackParameters);
});
});
};
【问题讨论】:
-
apply将一个 array 参数作为第二个参数,您已将一个对象传递给它 -
根据需要使用
.call或传入array
标签: javascript jquery javascript-objects jquery-events