需要做出哪些更改,因此a.b.c()的输出是"我应该'这个'"

时间:2017-11-16 08:07:13

标签: javascript

var a = {"b": {"c": function() {console.log( this );}}};
var x = {"b": "I should be 'this'"};

a.b.c();

1 个答案:

答案 0 :(得分:4)

您可以绑定属性或将属性作为此对象。

如果不转换为字符串,您将在此控制台中获得类似对象的数组。

方法:

  • Function#bind

      

    bind() 方法创建一个新函数,在调用时,将其this关键字设置为提供的值,并在给定的任何参数之前提供给定的参数序列调用新函数。

  • Function#call

      

    call() 方法调用具有给定this值的函数和单独提供的参数。

Mabe,你也看看这里:this

var a = { b: { c: function() { console.log(this.toString()); } } },
    x = { b: "I should be 'this'"};

a.b.c.bind(x.b)();
a.b.c.call(x.b);