2014-03-18 42 views
1

請你能告訴我爲什麼我的.apply()不能按我想要的方式工作。我究竟做錯了什麼?Javascript應用程序無法正常工作

我期待

嗨,愛麗絲,我是鮑勃

嗨,史蒂夫,我是鮑勃

嗨,馬克,我是鮑勃

<html> 
    <head> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
     <script type="text/javascript"> 


     var friendlyGreet = function() { 


      $.each(arguments, function(index, val) { 

        alert("Hi, " + val.name + ", I'm " + this.name); 
      }); 



     }; 


     var Bob = { 
      name: "Bob" 
     }; 

     var Alice = { 
      name: "Alice" 
     }; 

     var Mark = { 
      name: "Mark" 
     }; 

     var Steve = { 
      name: "Steve" 
     }; 

     friendlyGreet.apply(Bob,[Alice,Steve,Mark]); 

     </script> 
    </head> 
    <body> 
    </body> 
</html> 
+0

我明白你的期待:http://jsfiddle.net/MQh4M/ –

+0

@ TJ-我不知道。我看到'你好,愛麗絲,我是愛麗絲'等等...... Chrome 33.0.1750.146 m – Danny

+0

我的不好。我沒有看到輸出結果,非常好。檢查@sabof必須說的話。 –

回答

4

apply正在工作,但$.each中的this指的是元素被循環,而不是主要對象。

var friendlyGreet = function() { 
    var self = this; 
    $.each(arguments, function(index, val) { 
    alert("Hi, " + val.name + ", I'm " + self.name); 
    }); 
};