我怎样才能参考这个'从我的for循环和功能?

时间:2017-09-13 01:14:32

标签: javascript function this

我有一个如下所示的for循环:

function activate () {
...some code
..here we know what 'this' is
  if( i > 0...) {               
    function setNodeInvisible(ode) {
        for (var i = 0; i < node.children.length; i++) {
            if (node.children[i].isMesh) {
                this._view.setVisibility(node, false, false);
            }
        }
    }
   }
}

但它不知道这是什么。

除了这个for循环我的&#39;这个&#39;等于视口。我用得很好。

这里也不知道&#39;这个&#39;是:

function iterateP (parent) {
    this._view.setVisibility(parent, true, false);
}
我能得到这些地方吗?

2 个答案:

答案 0 :(得分:0)

this的值取决于调用者函数上下文。如果您要指定this的值,可以使用apply()call()来调用该函数。

您可以阅读thisthis了解更多信息。

答案 1 :(得分:0)

看起来像是设计问题,但没有足够的信息来帮助解决这个问题。在此期间,您可以使用.call()this来电中使用当前setVisibility值。

this._view.setVisibility.call(this, node, false, false);

原始调用的性质是this被隐式设置为_view对象,因为您从该对象调用了setVisibility。换句话说,方法左侧的对象变为this的值。

使用.call可以手动将被调用函数中this的值设置为您想要的任何值。在这种情况下,我们通过将其作为第一个参数传递来使用当前的this值。