js总结之模拟call,apply 发表于 2019-02-27 | 分类于 前端 1234567891011121314151617181920212223242526272829303132333435363738394041/* * @Author: changchang * @github: https://github.com/changchangge * @LastEditors: changchang * @Date: 2019-02-27 16:50:58 * @LastEditTime: 2019-02-27 16:54:29 */Function.prototype.callTest = function (context) { /** * @description: 实现一个call函数 */ var context = context || window; context.fn = this; var args = []; for (var i = 1; i < arguments.length; i++) { args.push("arguments[" + i + "]"); } var result = eval("context.fn(" + args + ")") delete context.fn; return result;}Function.prototype.applyTest = function (context, arr) { /** * @description: 实现一个bind函数 */ var context = context || window; context.fn = this; var result; if (!arr) { result = context.fn(); } else { var args = []; for (var i = 0; i < arr.length; i++) { args.push("arr[" + i + "]"); } result = eval("context.fn(" + args + ")") } delete context.fn; return result;} 本文结束啦感谢您的阅读