Не jQuery, но некоторые другие библиотеки / скрипты добавляют bind
к Function.prototype
, и некоторые из них делают это, не проверяя, есть ли они там, с радостью перезаписывая собственную реализацию.Я предполагаю, что вы должны использовать какой-то другой скрипт (кроме jQuery) на странице, и этот другой скрипт (будь то плагин jQuery или что-то еще) перезаписывает без проверки.
Я только что протестировал в Chromeи независимо от того, загружен ли у меня jQuery или нет, изнутри фактической страницы при просмотре свойства bind
функции отображается маркер собственного кода.(Напротив, если я загружаю последний Prototype, он перезаписывает собственную версию Chrome своей собственной.)
Пример со страницей без библиотек , вывод в Chrome:
Prototype not loaded
jQuery not loaded
<code>function bind() { [native code] }</code>
Пример со страницей с последней версией jQuery , вывод в Chrome:
Prototype not loaded
jQuery found: 1.6.2
<code>function bind() { [native code] }</code>
Пример со страницей с последним прототипом , вывод в Chrome:
Prototype found: 1.7
jQuery not loaded
<code>function bind(context) { if (arguments.length < 2 && Object.isUndefined(arguments[0])) return this; var __method = this, args = slice.call(arguments, 1); return function() { var a = merge(args, arguments); return __method.apply(context, a); } }</code>
Из вашего примера вы не загружаете последний Prototype, но что-то перезаписывает Function.prototype.bind
.