Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.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 Object.assign函数的重新绑定_Javascript_Javascript Objects - Fatal编程技术网

Javascript Object.assign函数的重新绑定

Javascript Object.assign函数的重新绑定,javascript,javascript-objects,Javascript,Javascript Objects,因为我需要声誉,所以无法对该帖子发表评论: 我开始问自己的问题: 这能以某种方式解决或解决吗?我有一个“主”对象,包含 function init(){console.log(this)}.bind(this) 我正在将这个主对象克隆到另一个对象中,我希望init函数在从属对象的范围内运行,而不是在主对象的范围内运行。 有什么选择吗?实际上解决了我的问题,因为: 如果URL已关闭,以下是附加代码: Function.prototype.bind = (function(origBind) {

因为我需要声誉,所以无法对该帖子发表评论: 我开始问自己的问题:

这能以某种方式解决或解决吗?我有一个“主”对象,包含

function init(){console.log(this)}.bind(this)

我正在将这个主对象克隆到另一个对象中,我希望init函数在从属对象的范围内运行,而不是在主对象的范围内运行。
有什么选择吗?

实际上解决了我的问题,因为:

如果URL已关闭,以下是附加代码:

Function.prototype.bind = (function(origBind) {
  return function() {
    var fn = origBind.apply(this, arguments);
    fn.__origFn__ = this.__origFn__ || this;
    return fn;
  };
}(Function.prototype.bind));

Function.prototype.unbind = function() {
  return this.__origFn__;
};

绑定函数的
值不能再次绑定。因此,您无法克隆和重新绑定。您可能应该避免第一次绑定。是的,问题是主对象本身是可实例化的,它需要绑定到自身。但感谢我得到了它,我将需要重新思考基本结构。“它需要与自身绑定。”很可能它没有。如果您正在执行类似于
.on(“someEvent”,master.someMethod)
的操作,那么您可以将
.on(“someEvent”,()=>master.someMethod())
替换为
,这样您就不需要绑定
someMethod
。一般来说,如果您将方法作为引用传递,则
this
的值只会“丢失”。我将对此进行检查。再次感谢您…或者您需要使用
克隆
方法来使用,而不是
对象。分配
,它可以克隆方法,然后绑定它们。你能不能把你的问题分享给我们更多关于主对象的代码,这样我们就可以写出一个正确的答案?