不是 jQuery,而是其他一些库/脚本添加bind
到Function.prototype
. 我假设您必须在页面上使用其他脚本(除了 jQuery),并且其他脚本(无论是 jQuery 插件还是其他)在没有检查的情况下被覆盖。
我刚刚在 Chrome 中进行了测试,无论我是否加载了 jQuery,从查看函数bind
属性的实际页面中都会显示本机代码标记。(相比之下,如果我加载最新的原型,它会用自己的覆盖 Chrome 的本机版本。)
没有库的页面示例,在 Chrome 上输出:
未加载原型
未加载 jQuery
function bind() { [native code] }
Example with page with latest jQuery, output on Chrome:
Prototype not loaded
jQuery found: 1.6.2
function bind() { [native code] }
Example with page with latest Prototype, output on Chrome:
Prototype found: 1.7
jQuery not loaded
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); } }
From your example, you're not loading the latest Prototype, but something is overwriting Function.prototype.bind
.