функция становится объектом после передачи другой функции - PullRequest
1 голос
/ 09 марта 2012

Мой код прост

var core ={
  f: function(obj){
    console.log(toString.call(obj));
  }
}

Который должен отображать [object Function]если я передаю ему другую функцию, например core.f(function(){}),

, и она делает то же самое, если я вставляю core.f в Chrome инспектор.Но эта анонимная функция становится [object Object], если core.f загружается через скрипт с <script src>

1 Ответ

3 голосов
/ 09 марта 2012

Если вы тестируете в консоли, у них, вероятно, есть локальный toString, который разрешается до Object.prototype.toString.

Вы должны сделать свою собственную локальную ссылку, если вы не хотите полный путь прототипа.


В Chrome я показываю toString, отличный от window.toString ...

window.toString === toString; // false

Ссылка toString успешно преобразуется в Object.prototype.toString ...

Object.prototype.toString === toString; // true

... так что вы можете видеть, что они создали свою собственную локальную ссылку, скрывающую глобальное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...