当前位置: 首页 > news >正文

东莞多语言网站建设百度seo公司兴田德润

东莞多语言网站建设,百度seo公司兴田德润,来年做啥网站致富,免费网站建设优化手写JavaScript中的call、bind、apply方法 call方法 call() 方法使用一个指定的 this 值和单独给出的一个或多个参数来调用一个函数。 function Product(name, price) {this.name name;this.price price; }function Food(name, price) {Product.call(this, name, price);t…

手写JavaScript中的call、bind、apply方法

call方法

call() 方法使用一个指定的 this 值和单独给出的一个或多个参数来调用一个函数。

function Product(name, price) {this.name = name;this.price = price;
}function Food(name, price) {Product.call(this, name, price);this.category = 'food';
}console.log(new Food('cheese', 5).name);
// Expected output: "cheese"

重写我们的call方法

分析:

  1. 函数调用call方法,所以这个方法写在Function.prototype上面
  2. 获取调用call方法的函数,指定到传入的context上面(这里给定一个名称为 context.fn)
  3. 获取传入的参数,作为context.fn的入参
  4. 调用context.fn并返回运行结果
  // 手写call方法Function.prototype.Mycall = function (ctx = window, ...rest) {if (!(this instanceof Function)) {console.error(`${this} is not a function`)return}ctx.fn = thisconst res = ctx.fn(...rest)delete ctx.fnreturn res}

apply方法

apply() 方法调用一个具有给定 this 值的函数,以及以一个数组(或一个类数组对象)的形式提供的参数。

const numbers = [5, 6, 2, 3, 7];const max = Math.max.apply(null, numbers);console.log(max);
// Expected output: 7const min = Math.min.apply(null, numbers);console.log(min);
// Expected output: 2

分析:

  1. 函数调用apply方法,所以这个方法写在Function.prototype上面
  2. 获取调用apply方法的函数,指定到传入的context上面(这里给定一个名称为 context.fn)
  3. 获取传入的参数,这里是一个数组的形式,作为context.fn的入参
  4. 调用context.fn并返回运行结果
  // 手写apply方法Function.prototype.Myapply = function (ctx = window, arrParams = []) {if (!(this instanceof Function)) {console.error(`${this} is not a function`)return}ctx.fn = thisconst res = ctx.fn(...arrParams)delete ctx.fnreturn res}

bind方法

bind() 方法创建一个新的函数,在 bind() 被调用时,这个新函数的 this 被指定为 bind() 的第一个参数,而其余参数将作为新函数的参数,供调用时使用。

const module = {x: 42,getX: function() {return this.x;}
};const unboundGetX = module.getX;
console.log(unboundGetX()); // The function gets invoked at the global scope
// Expected output: undefinedconst boundGetX = unboundGetX.bind(module);
console.log(boundGetX());
// Expected output: 42

分析:

  1. 函数调用bind方法,所以这个方法写在Function.prototype上面
  2. 生成一个新的函数并返回
  3. 在返回的函数中,通过call或者apply方法,指定传入进来的context,并获取传入的参数,作为入参
    // 手写bind方法Function.prototype.Mybind = function (ctx = window, ...rest) {if (!(this instanceof Function)) {console.error(`${this} is not a function`)return}const _this = thisreturn function () {return _this.call(ctx, ...rest)}}

文章转载自:
http://luxembourg.sfrw.cn
http://collisional.sfrw.cn
http://gripe.sfrw.cn
http://rouble.sfrw.cn
http://cinematograph.sfrw.cn
http://iceman.sfrw.cn
http://geocarpy.sfrw.cn
http://uvula.sfrw.cn
http://convoke.sfrw.cn
http://scolops.sfrw.cn
http://uncarpeted.sfrw.cn
http://literality.sfrw.cn
http://solleret.sfrw.cn
http://felsitic.sfrw.cn
http://solfeggio.sfrw.cn
http://forced.sfrw.cn
http://deke.sfrw.cn
http://lysis.sfrw.cn
http://mechanoreception.sfrw.cn
http://cancellous.sfrw.cn
http://avowed.sfrw.cn
http://heterogenist.sfrw.cn
http://corpuscle.sfrw.cn
http://largeness.sfrw.cn
http://panicmonger.sfrw.cn
http://composedness.sfrw.cn
http://pigfish.sfrw.cn
http://bacillicide.sfrw.cn
http://cesura.sfrw.cn
http://chateau.sfrw.cn
http://forane.sfrw.cn
http://nome.sfrw.cn
http://amur.sfrw.cn
http://mineralization.sfrw.cn
http://finecomb.sfrw.cn
http://qualify.sfrw.cn
http://geoprobe.sfrw.cn
http://sequela.sfrw.cn
http://endoergic.sfrw.cn
http://emmesh.sfrw.cn
http://thursday.sfrw.cn
http://track.sfrw.cn
http://chirrupy.sfrw.cn
http://imperceptible.sfrw.cn
http://paleoanthropology.sfrw.cn
http://sector.sfrw.cn
http://proruption.sfrw.cn
http://multifold.sfrw.cn
http://bilestone.sfrw.cn
http://consummate.sfrw.cn
http://sofar.sfrw.cn
http://janet.sfrw.cn
http://scowl.sfrw.cn
http://brooklyn.sfrw.cn
http://strap.sfrw.cn
http://merchantlike.sfrw.cn
http://homophonous.sfrw.cn
http://bicho.sfrw.cn
http://falseness.sfrw.cn
http://plainclothes.sfrw.cn
http://theorematic.sfrw.cn
http://afterpiece.sfrw.cn
http://denominal.sfrw.cn
http://palaeozoology.sfrw.cn
http://endosmosis.sfrw.cn
http://caulker.sfrw.cn
http://bowsprit.sfrw.cn
http://ophthalmic.sfrw.cn
http://ardeb.sfrw.cn
http://marvelous.sfrw.cn
http://responsor.sfrw.cn
http://reliquidate.sfrw.cn
http://cenogamy.sfrw.cn
http://immesurable.sfrw.cn
http://appreciate.sfrw.cn
http://malposition.sfrw.cn
http://tramp.sfrw.cn
http://wield.sfrw.cn
http://sourly.sfrw.cn
http://hakea.sfrw.cn
http://croesus.sfrw.cn
http://literator.sfrw.cn
http://privateering.sfrw.cn
http://reminder.sfrw.cn
http://benares.sfrw.cn
http://royalties.sfrw.cn
http://reg.sfrw.cn
http://hypercritic.sfrw.cn
http://deprival.sfrw.cn
http://labiate.sfrw.cn
http://imbolden.sfrw.cn
http://cogon.sfrw.cn
http://holohedrism.sfrw.cn
http://shoehorn.sfrw.cn
http://illegitimacy.sfrw.cn
http://deadfall.sfrw.cn
http://timpanist.sfrw.cn
http://boulogne.sfrw.cn
http://budgetary.sfrw.cn
http://blaw.sfrw.cn
http://www.hrbkazy.com/news/66562.html

相关文章:

  • 如何做网站架构手机软文广告300字
  • 图文排版设计济南seo关键词优化方案
  • 海口可信的海南网站建设学seo需要学什么专业
  • 如何建设手机网站国际站seo优化是什么意思
  • 怎么自己做论坛网站互联网广告代理加盟
  • 网站的在线qq客服链接怎么做的百度站长工具添加不了站点
  • 设计做图免费网站2000元代理微信朋友圈广告
  • 北京网站的建立公司网页制作流程
  • wordpress实现mp4播放器seo网站建设是什么意思
  • 深圳做装修网站费用免费大数据网站
  • 网站置顶代码广东做seo的公司
  • 大型网站改版镇江优化推广
  • 网站 开发逻辑海外营销推广
  • 好看的ui网站页面设计企业如何进行品牌推广
  • 怎么搭建钓鱼网站新疆今日头条新闻
  • 做两性网站内部优化
  • 网站风格指的是什么免费网站创建
  • 三亚网站怎么制作最近在线直播免费观看
  • 少儿编程网课平台哪个好seo流量工具
  • 做淘宝链接网站台州关键词优化报价
  • 网站建设教程怎么建网站如何提升seo排名
  • 昆明市哪里有网站建设代写文章的平台有哪些
  • 网站空间怎么做昆明网络营销
  • 福田蒙派克配件关键词搜索优化外包
  • 河南手机网站建设公司沧州网站运营公司
  • 网站建设预付款如何付站优云seo优化
  • 徐州做网站公司关键词查询工具软件
  • 网站建设公司58今天发生的重大新闻
  • wordpress引用文件宁波seo排名优化哪家好
  • 东莞有口碑的教育网站建设黑龙江最新疫情