<script type="text/javascript"> var obj={name:'bob',age:18} function f1 (value) { console.log(this,value) } // call和apply的区别在于传入参数形式不同 f1.call(obj,22)// 依次传入 f1.apply(obj,[33])// 必须以数组形式一次性传入 /* bind的特点:绑定this不会立即调用当前函数而是将函数返回。 bind的传参的方式和cal一样 */ var bar=f1.bind(obj) console.log(bar) /* 举例:bind不会立即调用 bind不会立即执行setTimeout的this */ setTimeout(function () { console.log(this); }.bind(obj),1000) </script>