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

乐清市做淘宝网站公司做问卷调查赚钱的网站好

乐清市做淘宝网站公司,做问卷调查赚钱的网站好,广府网站建设,西部数码域名注册官网一、this到底指向什么呢#xff1f; 我们先说一个最简单的#xff0c;this在全局作用域下指向什么#xff1f; 这个问题非常容易回答#xff0c;在浏览器中测试就是指向window 但是#xff0c;开发中很少直接在全局作用于下去使用this#xff0c;通常都是在函数中使用…一、this到底指向什么呢 我们先说一个最简单的this在全局作用域下指向什么 这个问题非常容易回答在浏览器中测试就是指向window 但是开发中很少直接在全局作用于下去使用this通常都是在函数中使用。 所有的函数在被调用时都会创建一个执行上下文这个上下文中记录着函数的调用栈、AO对象等this也是其中的一条记录 定义一个函数我们采用三种不同的方式对它进行调用它产生了三种不同的结果 这个的案例可以给我们什么样的启示呢 函数在调用时JavaScript会默认给this绑定一个值this的绑定和定义的位置编写的位置没有关系this的绑定和调用方式以及调用的位置有关系this是在运行时被绑定的 this到底是怎么样的绑定规则呢 绑定一默认绑定绑定二隐式绑定绑定三显示绑定绑定四new绑定 二、规则一默认绑定 什么情况下使用默认绑定呢独立函数调用。 独立的函数调用我们可以理解成函数没有被绑定到某个对象上进行调用 三、规则二隐式绑定 另外一种比较常见的调用方式是通过某个对象进行调用的 也就是它的调用位置中是通过某个对象发起的函数调用。 四、规则三显示绑定 隐式绑定有一个前提条件 必须在调用的对象内部有一个对函数的引用比如一个属性如果没有这样的引用在进行调用时会报找不到该函数的错误正是通过这个引用间接的将this绑定到了这个对象上 如果我们不希望在 对象内部 包含这个函数的引用同时又希望在这个对象上进行强制调用该怎么做呢 JavaScript所有的函数都可以使用call和apply方法这个和Prototype有关。 call和apply方法的区别其实非常简单第一个参数是相同的后面的参数apply为数组call为参数列表这两个函数的第一个参数都要求是一个对象这个对象的作用是什么呢就是给this准备的。在调用这个函数时会将this绑定到这个传入的对象上。因为上面的过程我们明确的绑定了this指向的对象所以称之为 显示绑定。 通过call或者apply绑定this对象 如果我们希望一个函数总是显示的绑定到一个对象上可以怎么做呢 五、内置函数的绑定思考 有些时候我们会调用一些JavaScript的内置函数或者一些第三方库中的内置函数。 这些内置函数会要求我们传入另外一个函数我们自己并不会显示的调用这些函数而且JavaScript内部或者第三方库内部会帮助我们执行这些函数中的this又是如何绑定的呢 setTimeout、数组的forEach、div的点击 注意forEach()第二个参数可以绑定this 六、规则四new绑定 七、规则优先级 学习了四条规则接下来开发中我们只需要去查找函数的调用应用了哪条规则即可但是如果一个函数调用位置应用了多条规则优先级谁更高呢 1.默认规则的优先级最低 毫无疑问默认规则的优先级是最低的因为存在其他规则时就会通过其他规则的方式来绑定this 2.显示绑定优先级高于隐式绑定 3.new绑定优先级高于隐式绑定 4.new绑定优先级高于bind new绑定和call、apply是不允许同时使用的所以不存在谁的优先级更高new绑定可以和bind一起使用new绑定优先级更高 八、this规则之外 – 忽略显示绑定 我们讲到的规则已经足以应付平时的开发但是总有一些语法超出了我们的规则之外。神话故事和动漫中总是有类似这样的人物 如果在显示绑定中我们传入一个null或者undefined那么这个显示绑定会被忽略使用默认规则 九、this规则之外 - 间接函数引用 另外一种情况创建一个函数的 间接引用这种情况使用默认绑定规则。 赋值表达式(obj2.foo obj1.foo)的结果是foo函数foo函数被直接调用那么是默认绑定 十、箭头函数 arrow function 箭头函数是ES6之后增加的一种编写函数的方法并且它比函数表达式要更加简洁 箭头函数不会绑定this、arguments属性箭头函数不能作为构造函数来使用不能和new一起来使用会抛出错误 箭头函数如何编写呢 (): 函数的参数{}: 函数的执行体 十一、箭头函数的编写优化 十二、this规则之外 – ES6箭头函数 箭头函数不使用this的四种标准规则也就是不绑定this而是根据外层作用域来决定this。 我们来看一个模拟网络请求的案例 这里我使用setTimeout来模拟网络请求请求到数据后如何可以存放到data中呢 我们需要拿到obj对象设置data 但是直接拿到的this是window 我们需要在外层定义var _this this 在setTimeout的回调函数中使用_this就代表了obj对象 之前的代码在ES6之前是我们最常用的方式从ES6开始我们会使用箭头函数 为什么在setTimeout的回调函数中可以直接使用this呢 因为箭头函数并不绑定this对象那么this引用就会从上层作用于中找到对应的this 十三、面试题
http://www.fuzeviewer.com/news/37522/

相关文章:

  • 中山 网站建设一条龙宝塔安装wordpress无法访问
  • 漳州微网站建设哪家好个人wordpress 主题
  • 邢台天九建设有限公司网站深圳网络服务有限公司
  • iss里面的默认网站开启不了提示服务器无响应.怎么开启17做网站广州新塘
  • 网站在百度上搜不到东莞市官网网站建设公司
  • 合肥网站设计品牌wordpress 增加域名
  • 做网站的公司叫中什么专业网站建设公司推荐
  • 建立网站需要备案吗合肥网站建设网站模板
  • 红色网站建设的作用和意义泉州网站排名优化
  • 沭阳找做网站合伙西安手机网站开发
  • 在网站上部署淘宝联盟推广代码的推广模式.软件工程师工作稳定吗
  • 设计网站网站名称微网站注册
  • 好的网站开发培训腾讯企业邮箱怎么开通注册
  • 织梦网站安装教程北京手机网站建设哪家好
  • 网站网站制作网娱乐网站导航
  • 山西省网站建设制作wordpress分类的feed
  • 如何做企业网站推广产品优化员工
  • 网站怎样做银联支付接口全景网站app
  • 有网站源程序怎么做网站后台怎样开通微信公众号
  • 建设银行官方网站app下载帮助中心网站模板
  • 2025国内供应链服务企业最新TOP5评测:稳定、成本可控、合作灵活
  • 软文新闻发布网站个人介绍网页制作模板html
  • 网站开发职责app制作公司深圳
  • 在哪个网站做科目一考试题简单的网站源码
  • 做自媒体可以搬运国外网站新闻吗设计合理的h5制作开发
  • 黄骅市网站建设价格三维建设项目管理网站
  • 方维网络的品牌网站建设专门做护肤品的网站是
  • 做包装盒效果图网站批量刷wordpress评论
  • 一个小型购物网站开发浙江联科网站开发
  • 蚌埠百度做网站66建筑网