当前位置: 网站首页>小程序开发>小程序制作

温县小程序制作【温县企业邮箱】温县网站外包、温县微信商城开发、温县网店美工、温县淘宝设计

发表日期: 2021-05-07 09:22:15 浏览次数:121

温县小程序制作【温县企业邮箱】温县网站外包、温县微信商城开发、温县网店美工、温县淘宝设计


温县,隶属于河南省焦作市,地处豫北平原西部,南滨黄河,北依太行,截至2017年,全县总面积481.3平方千米,辖7个乡镇、4个街道,262个行政村,总人口46.8万,县政府驻温泉街道。 [1] 

古时因境内有温泉而得名,在夏时被称温国,明清隶属怀庆府辖。温县诞生了思想家卜商、三国著名政治家军事家司马懿、北宋画家郭熙等历史名人,是太极拳发源地,温、苏等姓氏起源地。全国闻名的“武术之乡” [2]  、“怀药之乡”和优质小麦种子基地,中国十大休闲旅游县。 [1]  [3] 

2018年,温县完成地区生产总值296.61亿元,城镇居民人均可支配收入达到27876元,农村居民人均可支配收入达到16258元。 [4-5] 


浅谈JavaScript中call与apply的模拟实现

call

call()方法是使用一个指定的this值和若干个指定的参数值的前提下调用某个函数或方法

语法:

function.call(thisArg, arg1, arg2, ...)
  • thisArg可选,非严格模式下,当值为null或者undefined时指向window

  • arg1... 参数列表

demo:

var foo = {name: 'xcc'}function bar (age) {console.log(`name: ${this.name}, age: ${age}`)}bar.call(foo, 20)    // name: xcc, age: 20

注意事项:

  1. call改变了this的指向,由bar指向了foo

  2. bar函数执行了

模拟实现

第一步:

试想当调用call时,把foo对象改造如下:

var foo = {name: 'xcc',bar: function() {console.log(this.name)}}

带来的问题,给foo函数引入了对于的属性bar

解决方式:通过delete方法删除多余属性

模拟步骤分为下面几部:

  1. 将函数设置为对象的属性

  2. 执行该函数

  3. 删除该函数

等价于下面流程:

// 第一步foo.fn = bar// 第二步foo.fn()// 第三步delete foo.fn

实现方式:

// 第一版Function.prototype.call2 = function(context) {// 首先获取调用call的函数,通过this获取context.fn = thiscontext.fn()delete context.fn}var foo = {name: 'xcc'}function bar() {console.log(this.bar)   // xcc}bar.call2(foo)

第二步

给定call函数执行时添加参数执行

var foo = {name: 'xcc'}function bar(age) {console.log(this.name, age)}bar.call(foo, 20)   // xcc 20
// 第二版Function.prototype.call2 = function(context) {context.fn = this || windowvar args = []for(var i = 1, len = arguments.length; i < len; i++) {args.push('arguments[' + i + ']')}eval('context.fn(' + args +')')delete context.fn}var foo = {value: 1}function bar(name, age) {console.log(this.value, name, age)  // 1 xcc 20return {value: this.value,name: name,age: age}}bar.call2(foo, 'xcc', 20)

注意事项:

  1. call()方法第一个值为null或者undefined时,非严格模式下指向window

  2. 函数是可以有返回值的

  3. 自定义call函数时入参的处理方式

apply

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

语法:

func.apply(thisArg, [argsArray])

demo:

var foo = {name: 'xcc'}function bar (nums) {console.log(this.name, nums)    // xcc 20}bar.apply(foo, [20])

实现方式

Function.prototype.apply = function (context, arr) {var context = Object(context) || windowcontext.fn = thisvar resultif (!arr) {result = context.fn()}else {var args = []for (var i = 0, len = arr.length; i < len; i++) {args.push('arr[' + i + ']')}result = eval('context.fn(' + args + ')')}delete context.fnreturn result}

微信图片_20210425092605.jpg

温县小程序制作温县企业邮箱温县网站外包、温县微信商城开发、温县网店美工、温县淘宝设计

400-111-6878
服务热线
顶部

备案号: 苏ICP备11067224号

CopyRight © 2011 书生商友信息科技 All Right Reserved

24小时服务热线:400-111-6878   E-MAIL:1120768800@qq.com   QQ:1120768800

  网址: http://www.768800.com  网站建设上往建站

关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|

企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|

400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|

预约专家

欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系

  

服务热线:400-111-6878