0

如何得到cccc结果?</p>

c是一个带有children属性和方法的obj,我想用c.method运行其他函数,比如波纹管,我怎样才能让结果和c.test()一样?

<script type="text/javascript">

function a(fn){
    fn();
}

function b(){
    alert('bbbb');
}

var c={
    name: 'cccc',
    test: function (){
        alert(this.name);
    }
}

a(b);       // get 'bbbb';
a(c.test);  // get empty string, how can i get 'cccc'?

</script>
4

3 回答 3

6

您需要确保在isc.test的值内。这可以通过以下方式实现:thiscbind

a(c.test.bind(c));

请注意,这bind在 IE 8 或更早版本上不可用。

于 2013-09-30T09:12:16.297 回答
3

问题是函数内部的 this 范围。

var c={
  name: 'cccc',
  test: function (){
      alert(c.name);
  }
}

这应该适合你

于 2013-09-30T09:12:23.913 回答
0

你可以这样做:

a(function (){c.test()})

于 2013-09-30T09:27:31.413 回答