Javascript文本对象在另一个文本对象中执行方法
我不是JS专家,但…我有3个文字javascript对象: 1个主要搜索对象和其他2个使用该对象并询问的对象 数据 问题是,我需要以不同的方式呈现结果,因此我设置了不同的回调 在每个请求对象内部,但我无法让搜索对象触发它 有什么想法吗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
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)
-没有()的函数名