var option = { ti : 8, it(){ return this.ti; } }
這裏又一個option對象,it()方法裏的this指的就是option對象的上下文。函數
console.log(option.it());
直接輸出option.it()能夠打印出8,option對象做爲全局變量能夠直接調用;this
那我若是隻想用option裏的it()方法呢,如這樣:spa
var option = { ti : 8, it(){ return this.ti; } } var option2 ={ ti :7 } var nb = option.it.call(this.option);//call裏的this>wiondow對象 var nb2 = option.it.call(option2); console.log(nb);//8 console.log(nb2);//7 console.log(option.it());//8
nb2這個對象,將option裏的this指向了option2,因此this.ti至關於option2.ti;code
bind和call用法差很少,call返回的是對象,bind返回的是一個函數。若是var bn2 = option.ti.bind(option2);那麼在調用的時候就要對象
console.log(nb2())
console.log(nb2())