函数四种调用模式以及其中的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+CSS3实现一款简洁大气带滑动效果的弹出层
May 15 Javascript
Node.js异步I/O学习笔记
Nov 04 Javascript
轻量级javascript 框架Backbone使用指南
Jul 24 Javascript
json实现添加、遍历与删除属性的方法
Jun 17 Javascript
jQuery bt气泡实现悬停显示及移开隐藏功能的方法
Jul 12 Javascript
手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现
Aug 25 Javascript
JS 调试中常见的报错问题解决方法
May 20 Javascript
JavaScript实现三级联动菜单效果
Aug 16 Javascript
js使用ajax传值给后台,后台返回字符串处理方法
Aug 08 Javascript
超详细动手搭建一个VuePress 站点及开启PWA与自动部署的方法
Jan 27 Javascript
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
Aug 04 Javascript
JavaScript中Object、map、weakmap的区别分析
Dec 15 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
php字符串截取的简单方法
2013/07/04 PHP
PHP上传图片进行等比缩放可增加水印功能
2014/01/13 PHP
PHP 用session与gd库实现简单验证码生成与验证的类方法
2016/11/15 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
JS判断文本框内容改变事件的简单实例
2014/03/07 Javascript
jquery实现的导航固定效果
2014/04/28 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(下)
2015/10/28 Javascript
浅谈javascript中关于日期和时间的基础知识
2016/07/13 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
2017/01/11 Javascript
bootstrap table 数据表格行内修改的实现代码
2017/02/13 Javascript
详解Angular.js数据绑定时自动转义html标签及内容
2017/03/30 Javascript
微信小程序如何获取用户收货地址
2018/11/27 Javascript
js的继承方法小结(prototype、call、apply)(推荐)
2019/04/17 Javascript
vue-cli history模式实现tomcat部署报404的解决方式
2019/09/06 Javascript
python 从远程服务器下载日志文件的程序
2013/02/10 Python
Python文档生成工具pydoc使用介绍
2015/06/02 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
2018/10/17 Python
Python lambda表达式filter、map、reduce函数用法解析
2019/09/11 Python
Python 如何优雅的将数字转化为时间格式的方法
2019/09/26 Python
Python随机数函数代码实例解析
2020/02/09 Python
django 装饰器 检测登录状态操作
2020/07/02 Python
Python xmltodict模块安装及代码实例
2020/10/05 Python
CSS3实现粒子旋转伸缩加载动画
2016/04/22 HTML / CSS
html5-Canvas可以在web中绘制各种图形
2012/12/26 HTML / CSS
乔丹诺(Giordano)酒庄德国官网:找到最好的意大利葡萄酒
2017/12/28 全球购物
Baracuta官方网站:Harrington夹克,G9,G4,G10等
2018/03/06 全球购物
护理学毕业生自荐信
2013/10/02 职场文书
大一自我鉴定范文
2013/10/04 职场文书
冰淇淋店创业计划书范文
2013/12/27 职场文书
4s店市场专员岗位职责
2014/04/09 职场文书
银行竞聘演讲稿范文
2014/04/23 职场文书
校运动会广播稿(100篇)
2014/09/12 职场文书
国家机关领导干部民主生活会对照检查材料思想汇报
2014/09/17 职场文书
昆虫记读书笔记
2015/06/26 职场文书
Python数据可视化之用Matplotlib绘制常用图形
2021/06/03 Python
Opencv中cv2.floodFill算法的使用
2021/06/18 Python