日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

原生js如何實現call,apply以及bind

瀏覽:234日期:2024-04-01 09:39:02
1、實現call

步驟:

將函數設為對象的屬性; 指定this到函數,并傳入給定參數執行函數; 執行之后刪除這個函數; 如果不傳入參數,默認指向window;

Function.prototype.mycall = function (context, ...args) { //判斷是否為函數,如果不是函數,則報錯 if (typeof this !== 'function') {throw new Error('不是函數'); } context = context || window; context.fn = this; const res = context.fn(...args); delete context.fn; return res;}

測試代碼:

var name = '李輝', age = 25;var obj = { name: '周果', objAge: this.age, myFun: function (fm, to) {console.log(`名字:${this.name},年齡:${this.age},來自:${fm},去往:${to}`) }};var person = { name: '弟弟', age: 12,};Function.prototype.mycall = function (context, ...args) { //判斷是否為函數,如果不是函數,則報錯 if (typeof this !== 'function') {throw new Error('不是函數'); } context = context || window; context.fn = this; const res = context.fn(...args); delete context.fn; return res;}obj.myFun.mycall(person, '成都', '仁壽'); //名字:弟弟,年齡:12,來自:成都,去往:仁壽2、實現apply

Function.prototype.myApply = function (context, ...args) { //判斷是否為函數,如果不是函數,則報錯 if (typeof this !== 'function') {throw new Error('不是函數'); } context = context || window; context.fn = this; args = args && args[0] || []; const result = context.fn(...args); delete context.fn; return result;}

測試代碼:

obj.myFun.myApply(person, ['成都', '仁壽']); //名字:弟弟,年齡:12,來自:成都,去往:仁壽3、實現bind

bind()方法主要就是將函數綁定到某個對象,bind()會創建一個函數,函數體內的this對象的值會被綁定到傳入bind()中的第一個參數的值。

方法1:使用apply

Function.prototype.myBind = function () { let self = this; //保存原函數 let context = [].shift.call(arguments); //保存需要綁定的this上下文 let args = [...arguments]; //將傳入的剩余參數轉換成數組 return function () { //返回一個新的函數self.apply(context,[].concat.call(args,[...arguments])); }}

ES6簡化一下:

Function.prototype.myBind = function (context, ...args1) {return (...args2) => { //返回箭頭函數, this綁定調用這個方法的函數對象 context = context || window; return this.apply(context, args1.concat(args2));//合并參數} }方法2:不使用call以及apply

將上面的代碼和js手寫實現apply的代碼合并一下:

Function.prototype.myBind = function (context, ...args1) { return (...args2) => { //返回箭頭函數, this綁定調用這個方法的函數對象context = context || window;context.fn = this;const args = args1.concat(args2);const res = context.fn(...args);delete context.fn;return res; }}

測試代碼:

obj.myFun.myBind(person, '成都', '仁壽')();//名字:弟弟,年齡:12,來自:成都,去往:仁壽

以上就是原生js如何實現call,apply以及bind的詳細內容,更多關于js實現call,apply以及bind的資料請關注好吧啦網其它相關文章!

標簽: JavaScript
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国际精品欧美精品| 久久精品国产亚洲夜色av网站| 999久久久精品国产| 美女精品久久| 国产精品成人**免费视频| 日韩国产精品久久久| 久久先锋影音| 在线国产精品一区| 亚洲精品乱码久久久久久蜜桃麻豆| 久久性天堂网| 日本不卡不码高清免费观看 | 999国产精品永久免费视频app| 日韩大片在线播放| 精品午夜av| 国产v日韩v欧美v| 999国产精品永久免费视频app| 久久亚洲专区| 国产亚洲精品自拍| 亚洲精品麻豆| 欧美午夜三级| 久久永久免费| 精品免费av在线| 不卡在线一区| 一区二区亚洲视频| 国产欧美三级| 岛国av免费在线观看| 99久久精品网| 亚洲伊人精品酒店| 婷婷精品在线观看| 国产精品videosex极品| 91综合网人人| 999在线观看精品免费不卡网站| 日韩精品一二三四| 国产欧美在线| 午夜久久中文| 亚洲一区二区免费看| 欧美精品中文| 国产欧美一区二区三区精品酒店| 国产专区一区| 中文字幕一区二区三区四区久久| 久久国产尿小便嘘嘘| 成年男女免费视频网站不卡| 欧美在线观看视频一区| 亚洲欧美久久久| 欧美日韩精品一区二区三区在线观看| 国产一区二区三区四区五区 | 国产精品三级| 亚洲91久久| 日韩中文字幕在线一区| 国产精品1luya在线播放| 日韩电影免费网站| 亚洲日韩中文字幕一区| 欧美精品第一区| 日本麻豆一区二区三区视频| 午夜久久中文| 日韩欧美美女在线观看| 亚洲精品影视| 欧美国产不卡| 亚洲a一区二区三区| 少妇精品久久久一区二区| 精品亚洲免a| 精品一区三区| 国产剧情一区二区在线观看| 色老板在线视频一区二区| 日韩中文字幕一区二区三区| 美女久久久久久| 好吊日精品视频| 国产精品草草| 日韩在线播放一区二区| 亚洲一级二级| 国产精品午夜一区二区三区| 日韩综合精品| 亚洲日产av中文字幕| 久久久精品日韩| 欧美日韩中文| 红桃视频国产精品| 精品一区二区三区亚洲| 亚洲在线观看| 一区二区三区四区日韩| 久久狠狠久久| 亚洲精品进入| 国产69精品久久| 免费在线观看成人| 国产一区二区三区不卡av| 亚洲最大av| 久久天堂成人| 四虎精品一区二区免费| 日韩网站中文字幕| 奇米色欧美一区二区三区| 久久精品国语| 久久99影视| 亚洲我射av| 欧美日韩三区| 鲁鲁在线中文| 久久中文在线| 欧美日韩18| 亚洲精品乱码| 亚洲欧美网站| 99国产精品免费视频观看| 捆绑调教美女网站视频一区| 亚洲精品成人一区| 91精品蜜臀一区二区三区在线| 久久爱www.| 国产亚洲电影| 日韩av中文字幕一区| 亚洲我射av| 视频在线观看一区| 精品一区亚洲| 不卡一区综合视频| 91精品啪在线观看国产18| 成人小电影网站| 精品久久一区| 免费精品一区| 欧美国产日韩电影| 欧美一区91| 日韩欧美中文字幕一区二区三区| 亚洲精品一区二区在线看| 秋霞影视一区二区三区| 成人亚洲欧美| 日韩在线精品| 久久激情婷婷| 99久久激情| 99精品在线观看| 欧美丝袜一区| 久久精品不卡| 欧美特黄一区| 久久性天堂网| 天海翼精品一区二区三区| 日韩精品高清不卡| 热久久久久久| 久久a爱视频| 久久香蕉精品香蕉| 国模大尺度视频一区二区| 精品久久久中文字幕| 成人三级高清视频在线看| 日韩欧美综合| 欧美成人基地 | 日韩av一区二区在线影视| 亚洲综合婷婷| 久久精品 人人爱| 免费一级欧美片在线观看网站| 欧美激情 亚洲a∨综合| 久久一区国产| 国产成人免费| 日韩影院二区| 五月天久久网站| 亚洲在线电影| 亚洲精品欧美| 国产精品一卡| 国产精品毛片久久| 啪啪国产精品| 鲁大师影院一区二区三区| 老鸭窝亚洲一区二区三区| 亚洲免费观看高清完整版在线观| 中文字幕日韩欧美精品高清在线| 亚洲专区视频| 久久国产生活片100| 国产一区二区三区四区大秀| 日韩精品免费一区二区三区| 激情久久久久久| 免费人成在线不卡| 国产精一区二区| 日本综合字幕| 免费欧美日韩| 国产精品va| 激情欧美一区| 日本中文字幕一区二区视频| 国产极品一区| 久久精品卡一| 欧美一级一区| 日韩精品dvd| 中文字幕一区二区av| 久久精品国产一区二区| 久久国产电影| 亚洲久久一区| 国产一区二区三区91| 黄色免费成人| 国产精品红桃| 亚洲国产不卡| 国产精品视频一区视频二区| 日韩在线视频精品| 日韩在线视频一区二区三区| 91免费精品| 最近国产精品视频| 色爱综合网欧美| 亚洲字幕久久| 日韩中文字幕高清在线观看| 亚洲欧美在线综合| 91偷拍一区二区三区精品| 免费观看日韩电影| 国产精品久久久久9999高清| jiujiure精品视频播放| 国产精品久久777777毛茸茸| 欧美日韩精品免费观看视频完整| 欧美日本久久| 黄色av日韩| 国产成人免费| 日韩国产欧美三级| 91久久久精品国产| 老司机精品视频在线播放|