Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript文本对象在另一个文本对象中执行方法_Javascript_Jquery_Oop - Fatal编程技术网

Javascript文本对象在另一个文本对象中执行方法

Javascript文本对象在另一个文本对象中执行方法,javascript,jquery,oop,Javascript,Jquery,Oop,我不是JS专家,但…我有3个文字javascript对象: 1个主要搜索对象和其他2个使用该对象并询问的对象 数据 问题是,我需要以不同的方式呈现结果,因此我设置了不同的回调 在每个请求对象内部,但我无法让搜索对象触发它 有什么想法吗 var Search = { Execute: function() { // logic // Set the result/data var $someObjectHere // Execute Callback

我不是JS专家,但…我有3个文字javascript对象:

1个主要搜索对象和其他2个使用该对象并询问的对象 数据

问题是,我需要以不同的方式呈现结果,因此我设置了不同的回调 在每个请求对象内部,但我无法让搜索对象触发它

有什么想法吗

var Search = {

    Execute: function() {
    // logic

    // Set the result/data
    var $someObjectHere

    // Execute Callback
    if ( theCallback.indexOf('.') != -1 ) {
        // Its a method inside an object, trigger it.
        theCallback = theCallback.split('.');
        obj = theCallback[0];
        methodName = theCallback[1];
        obj[methodName]($someObject); <--- DOESNT WORK!
        }
    }
}

var Obj1 = {

    bind_events: function() {
        $('button1').on('click',function(){
            Search.theCallback = 'obj1.mycallback';
            Search.Execute();
        });
    },

    mycallback: function() {
        // CALLBACK!
    }
}

var Obj2 = {

    bind_events: function() {
        $('button1').on('click',function(){
            Search.theCallback = 'obj2.mycallback';
            Search.Execute();
        });
    },

    mycallback: function() {
        // CALLBACK!
    }
}
var搜索={
执行:函数(){
//逻辑
//设置结果/数据
var$someObjectHere
//执行回调
如果(回调.indexOf('.')!=-1){
//它是一个对象内部的方法,触发它。
回调=回调.split('.');
obj=回调[0];
方法名称=回调[1];

obj[methodName]($someObject);你这样做是错误的。你需要处理函数引用,而不是字符串“路径”。在字符串引用中,你的第一个ketter是小写的,但object是大写的。还有一些其他错误已经简化了。为什么你不能把
Obj1.mycallback()放在
-尤其是
Execute
方法除了执行函数OK之外,实际上不记录日志或执行任何特殊操作,那么我如何才能传递回调执行的方法?而不传递字符串“path”?例如:
function myFunc(){}Obj.bind_events(myFunc)
-没有
()的函数名