javascript - 对象中的函数指针

标签 javascript function object pointers

我有一个将对象作为参数的 javascript 函数。我希望传递对象的属性之一是函数指针。但是我不希望发生的功能被执行了。

示例:

var myFuncPtr = function(){alert("Done");};

function myFunc(o){
  // do something with passed object
  // then call the function pointed at in the passed object
}

myFunc( {foo:"bar", onDone: myFuncPtr} );

我确信那里有一位专家可以指导我朝着正确的方向前进。我会以错误的方式解决这个问题吗?有快速解决方案者优先。

这是实际的代码:

$(document).ready(function() {
    imageCropper({
        id:"imageBox",
        editWidth:400,
        cropWidth:0,
        maxFileSize:3000000,
        croppedId:"croppedBox",
        onCrop:whenImageCropped
    });
});

function whenImageCropped(o)
{
    alert("done");
}

function imageCropper(options)
{
    divId = options.id;
    croppedDivId = (options.croppedId)?options.croppedId:divId+"_croppedPic";

    $("#"+divId).load("/modules/imageCropper.asp", options, function(){

/* if i remove this bit, then no probs */
        $("#"+divId+"_imgToCrop").Jcrop({
            },function(){jcrop_api = this;}
        );
/* end of - if i remove this bit, then no probs */

    });
}

最佳答案

I want one of the properties of passed object to be a function pointer. But the function is executed which I don't want to happen.

这听起来像是在执行函数并传递返回值,而不是传递对函数的引用。

也许在您的原始代码中有

myFunc( {foo:"bar", onDone: myFuncPtr()} );

它调用 myFuncPtr 并将返回值分配给 onDone

问题中的代码很好,只需在 myFunc 中调用 o.onDone() 即可。


如前所述,JavaScript 中没有指针,它比那简单得多。函数只是数据类型,例如字符串、数字、数组等,它们恰好是可调用的。

关于javascript - 对象中的函数指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9080584/

相关文章:

javascript - HTML5/JavaScript Canvas 文本渐变效果

c# - 有一个称为参数的静态变量

javascript - 将对象中的所有键转换为新对象

javascript - 使用每个数组的对象键将嵌套数组递归转换为嵌套对象

javascript - d3js : How to pass button id to onclick callback function

javascript - JS 中的 HTTP JSON 请求 - CORS 问题

javascript - 如何在 onClick 时不在按钮的文本上应用动画?

javascript - 简单的 jQuery 函数在 for 循环后仅返回零

Python 从另一个文件调用函数

javascript - 表格无法进一步发展,似乎陷入功能困境