为什么输出如下?

Ada*_*Lee 2 javascript jquery

var obj = [ "one", "two", "three"];

$.each(obj, function() {
   console.log(this);
});
Run Code Online (Sandbox Code Playgroud)

我得到的输出是

{ '0': 'o', '1': 'n', '2': 'e' }
{ '0': 't', '1': 'w', '2': 'o' }
{ '0': 't', '1': 'h', '2': 'r', '3': 'e', '4': 'e' }
Run Code Online (Sandbox Code Playgroud)

我想要得到"一个""两个""三个",但我得到以下奇怪的结果,任何人都可以解释?

pim*_*vdb 5

this永远是那里的一个对象.字符串对象由键/值对组成,其中键是索引,值是字符串中该索引处的字符.尝试Object("foo")自己创建这样的对象.

通过使用严格模式,您可以抑制:

$.each(obj, function() {
  "use strict";
  console.log(this);
});
Run Code Online (Sandbox Code Playgroud)

  • @Chris:是的,这很有道理.对不起 :) (2认同)