分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

js实现bind方法

发布时间:2023-09-06 02:18责任编辑:顾先生关键词:js
//目标函数function fun(...args) { ????console.log(this); ????console.log(args);}//目标函数原型对象上的一个方法cherfunc.prototype.cher = function () { ???console.log(1);}//bind传入参,一个是要改变this指向的对象,后面的是要传入的实参数值Function.prototype.myBind = function (obj,...args) { ???????var _that = this; ???????//bing会返回一个新的函数 ???????var newBind = function(...list) { ???????????//使用apple方法把this指向改变 ???????????_that.apply(obj,[...list,...args]); ???????} ???????//在用bind改变this指向的时候,返回的函数不会立即执行。如果用返回的函数作为构造函数实例化一个对象的时候,这个对象的原型对象还是目标对象的原型对象,所以要纠正过来 ???????newBind.prototype = Object.create(_that.prototype); ???????newBind.prototype.constructor = _that; ???????//返回这个函数 ???????return newBind;}var fn2 = fun.myBind({a:1},4,3);var newFn2 = new fn2(1,2); ???????????//{a:1} ??1,2,4,3console.log(newFn2); ??????????????  //newBind{}console.log(newFn2.cher()); ???????  //1

js实现bind方法

原文地址:https://www.cnblogs.com/ninefrom/p/9815588.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved