如何调用在另一个函数中作为参数传递的函数
how to call a function which is passed as parameter in another function
如何调用在另一个函数中作为参数传递的函数
这里我调用的函数onclick i将函数名称作为参数
onclick="calldialogbox('thisisfortest')"
这是调用onclick的函数
function calldialogbox(funtion_name){
var dialog = $('<p>Are you sure?</p>').dialog({
buttons: {
"Yes": function(){
dialog.dialog('close');
funtion_name(); //here i am calling function
},
"Cancel": function() {
dialog.dialog('close');
}
}
});
}
这是我想调用的函数
function thisisfortest(){
alert("thisisfortest");
}
只需传递不带引号的函数。这称为回调。在javascript中,函数是第一类对象,因此您可以像传递普通变量一样传递它们。
PS。尝试使用addEventListener而不是html onclick属性。
如果将函数名作为参数传入,请使用以下解决方法(处理"全局"函数):
...
"Yes": function(){
dialog.dialog('close');
window[funtion_name](); //here I'm calling function <----
},
...
与其将function_name
视为简单的function
整数,不如将函数的名称作为字符串传递,而是对函数本身的实际引用。
onclick="calldialogbox(thisisfortest)"
可以这样做是因为JavaScript中的函数是"第一类对象",可以分配给变量,作为参数传递给其他函数(也称为回调),也可以从函数返回。
就JS最佳实践而言,最好的方法是使用事件侦听器分离内联JS。类似这样的东西:
HTML
<div id="clickable">Click me</div>
JS-
var div = document.getElementById('clickable');
div.addEventListener('click', calldialogbox(thisisfortest), false);
这样就不需要HTML中的onclick
事件。
演示
(实际上,因为calldialogbox
不是一个异步函数,所以在本例中根本不需要传入回调。)
试试这个
在html中
<a onclick="calldialogbox(thisisfortest)">Click Me</a>
js
function calldialogbox(funtion_name){
var dialog = $('<p>Are you sure?</p>').dialog({
buttons: {
"Yes": function(){
dialog.dialog('close');
funtion_name(); //here i am calling function
},
"Cancel": function() {
dialog.dialog('close');
}
}
});
}
function thisisfortest(){
alert("thisisfortest");
}
相关文章:
- 在构造控制器、服务等时作为函数参数传递之前列出的角度 JS 变量
- 作为函数参数传递的匿名函数的范围
- 通过函数参数传递id
- 将数组值作为函数参数传递
- 是否需要初始化在 Javascript 中作为“类”构造函数参数传递的变量
- JavaScript 函数参数传递数组
- Angular2 将函数参数传递给构造函数
- 为什么我不能将角度变量作为函数参数传递
- jQuery - 基于作为函数参数传递的对象构建动态 if 语句
- 停止对作为函数参数传递到新列表的对象引用
- 在 JavaScript 中将数组作为内置函数参数传递
- AngularJS将范围变量名称作为函数参数传递
- Javascript 将对象作为函数参数传递
- 在对象上调用方法或将对象作为函数参数传递的差异
- 正确的方法:始终将所有变量作为函数参数传递
- 如何将动态创建的复选框值作为函数参数传递
- 节点简斯 |将对象作为函数参数传递
- 什么是将对象属性作为函数参数传递的良好策略/模式
- 将对象作为函数参数传递.不确定如何访问这些值
- 为什么我们要将函数参数传递到$scope$申请