2014-12-21 42 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