函数四种调用模式以及其中的this指向


Posted in Javascript onJanuary 16, 2017

第一种:函数直接执行模式

function add(a,b){
   console.log(this);
   return a+b;
  }
 add(10,20)//this===window

第二种:对象方法的调用模式

var obj={
   name:'aaa',
   age:20,
   said:function(){
    console.log(this);
   }
  }
obj.said();//this===obj,此处this指代被调用者

第三种:构造器的调用模式

function School(){
   this.said=function(){
    console.log(this);
   }
  }
var nanj=new School();
nanj.said();//对象调用自己的方法,this===nanj,类似上面

第四种:call和apply调用模式

function change(a,b){
   this.detial=a*b;
   console.log(this);
  }
  var p={};
  change.call(p,4,5);//此处的this===p
  console.log(p.detial);
  var q=[];
  change.call(q,5,10)//this===q
  console.log(q.detial);
  //apply和call一样的用法,只不过apply第二个参数用数组进行传递
  var arr=[];
  change.apply(arr,[10,10]);//this===arr
  console.log(arr.detial);
  var str={};
  change.apply(str,[20,20]);//this===str
  console.log(str.detial);

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
jquery 追加tr和删除tr示例代码
Sep 12 Javascript
Javascript 中创建自定义对象的方法汇总
Dec 04 Javascript
Redis基本知识、安装、部署、配置笔记
Mar 05 Javascript
jQuery插件windowScroll实现单屏滚动特效
Jul 14 Javascript
你可能不知道的前端算法之文字避让(inMap)
Jan 12 Javascript
一百行JS代码实现一个校验工具
Apr 30 Javascript
微信小程序代码上传、审核发布小程序
May 18 Javascript
ES6 let和const定义变量与常量的应用实例分析
Jun 27 Javascript
微信提示 在浏览器打开 效果实现过程解析
Sep 10 Javascript
jQuery操作事件完整实例分析
Jan 10 jQuery
详解React 元素渲染
Jul 07 Javascript
JavaScript实现点击切换功能
Jan 27 Javascript
js实现导航栏中英文切换效果
Jan 16 #Javascript
Bootstrap面板使用方法
Jan 16 #Javascript
codeMirror插件使用讲解
Jan 16 #Javascript
微信小程序 图片边框解决方法
Jan 16 #Javascript
微信小程序 scroll-view隐藏滚动条详解
Jan 16 #Javascript
微信小程序 video详解及简单实例
Jan 16 #Javascript
Vue系列:通过vue-router如何传递参数示例
Jan 16 #Javascript
You might like
咖啡的化学
2021/03/03 咖啡文化
PHP5中新增stdClass 内部保留类
2011/06/13 PHP
PHP无刷新上传文件实现代码
2011/09/19 PHP
php连接oracle数据库的核心步骤
2016/05/26 PHP
php表单习惯用的正则表达式
2017/10/11 PHP
jquery插件jbox使用iframe关闭问题
2009/02/09 Javascript
js中的string.format函数代码
2020/08/11 Javascript
intro.js 页面引导简单用法 分享
2013/08/06 Javascript
JQuery中DOM事件绑定用法详解
2015/06/13 Javascript
JS实现CheckBox复选框全选、不选或全不选功能
2020/07/28 Javascript
JavaScript中访问id对象 属性的方式访问属性(实例代码)
2016/10/28 Javascript
jQuery的$.extend 浅拷贝与深拷贝
2017/03/08 Javascript
jQuery自定义图片上传插件实例代码
2017/04/04 jQuery
Bootstrap.css与layDate日期选择样式起冲突的解决办法
2017/04/07 Javascript
AngularJS 中的数据源的循环输出
2017/10/12 Javascript
微信小程序下拉刷新PullDownRefresh的使用方法
2018/11/29 Javascript
解决vue.js提交数组时出现数组下标的问题
2019/11/05 Javascript
python之wxPython菜单使用详解
2014/09/28 Python
python编写暴力破解zip文档程序的实例讲解
2018/04/24 Python
在python中以相同顺序shuffle两个list的方法
2018/12/13 Python
处理python中多线程与多进程中的数据共享问题
2019/07/28 Python
python 定义类时,实现内部方法的互相调用
2019/12/25 Python
python 函数嵌套及多函数共同运行知识点讲解
2020/03/03 Python
如何解决flask修改静态资源后缓存文件不能及时更改问题
2020/08/02 Python
python调用摄像头的示例代码
2020/09/28 Python
使用CSS3编写灰阶滤镜来制作黑白照片效果的方法
2016/05/09 HTML / CSS
澳大利亚排名第一的儿童在线玩具商店:Toy Galaxy
2018/10/06 全球购物
墨尔本复古时尚品牌:Dangerfield
2018/12/12 全球购物
应届大专毕业生个人自荐信
2013/09/22 职场文书
毕业生简单求职信
2013/11/19 职场文书
建议书标准格式
2014/03/12 职场文书
初婚初育证明范本
2015/06/18 职场文书
大学生村官驻村工作心得体会
2016/01/23 职场文书
python用字节处理文件实例讲解
2021/04/13 Python
OpenCV实现普通阈值
2021/11/17 Java/Android
搭建zabbix监控以及邮件报警的超级详细教学
2022/07/15 Servers