2014-12-21 77 views
0

當函數被調用時,this.apply(obj);的用途是什麼。例如這個代碼。應用對象功能

Function.prototype.blio = function (a) { 
     this.hurka = 'hurka'; 
     var obj = {}; 
     this.apply(obj); // what exactly happens here ? 
    } 
+0

看看這裏https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply –

回答

2

讓我們試試吧!

function foo() { 
    console.log(this); 
} 

foo(); // logs window 
console.log(foo.hurka); // undefined 
foo.blio(); // logs {} 
console.log(foo.hurka); // "hurka" 

別急,foo.blio調用foo
因此,當作爲foo.blio()

  • thisblio調用是foo
  • this.apply相當於foo.apply
  • thisfoo是通過apply

你可以閱讀更多的設置爲{}Function.prototype.apply on MDN docs here

+0

好吧,但是這一行發生了什麼this.apply(obj) ;被定義爲。什麼意思this.apply(...)在函數內部? – theChampion