Javascript 无法为对象实例内的函数创建闭包以发送到另一个对象

Javascript 无法为对象实例内的函数创建闭包以发送到另一个对象,javascript,closures,Javascript,Closures,我有这个: objectA ..... objectB = function (){ value:1, do_things: function (param1, param2, option) {bla bla}, connect : function (dest){ My_objectA.set_external_do_thing = function ????????? } } 那么我有: MY_objectA = new objet

我有这个:

objectA .....

objectB = function (){
    value:1,
    do_things: function (param1, param2, option) {bla bla},
    connect : function  (dest){
        My_objectA.set_external_do_thing  = function  ?????????
    }
}
那么我有:

MY_objectA = new objetA();
MY_objectB = new objetB(); 
MY_objectB.connect(My_objectA);
我想编写正确的代码,将do_things函数发送到ObjectA,然后从那里调用它。do_things使用局部变量param1和param2。我需要设置它们,但我不能

到目前为止,我有很多未定义的消息无法解决。
任何帮助都将不胜感激。

正如@Bergi right所说,您犯了一些错误,我修复了这些错误,并尝试实施一个示例,据我所知,这是您的疑问。。。看看

假设您有两个对象:

var husband = {
    spentFactor: 1,
    buyThings: function () {
      console.log('bla bla');
    },
    buyOtherThings: function (param1) {
      console.log("Final Cost: " + (param1*this.spentFactor));
    }
};

var wife = {
    spentFactor: 10,
    buyThings: function () {
      console.log('bla bla');
    }
};
然后,如果您想使用来自丈夫对象的buyOtherThings方法,但您知道我们男人有一个不同的因素:

husband.buyOtherThings(20);
husband.buyOtherThings.apply(wife, [20]);
apply方法是关键,每个函数都从一个函数对象派生,默认情况下您将继承它。此方法允许您从对象更改此函数,因此我们可以重用来自不同对象的函数


玩一下这个代码

如果你有set\u external\u do\u thing的代码,那么就把它发布出来。和param1以及param2在哪个范围内是本地的?objectB body?您将对象文字与函数语法混合在一起。请提供语法上有效的,甚至可执行的示例代码。-Elmo:param1,param2将是objectB中的变量。选项将由ObjectA设置。>>'set_external_do_thing'必须如此简单:set_external_do_thing=函数a_函数,参数{my_option=some_值;a_函数params[0],params[1],somevalue;}。我希望现在我的问题更清楚了-我不能发送代码,因为它太长了。我想我已经发送了主要想法……@civiltomain,请让我知道这是否有用