函数四种调用模式以及其中的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 相关文章推荐
JavaScript delete操作符应用实例
Jan 13 Javascript
javascript中判断一个值是否在数组中并没有直接使用
Dec 17 Javascript
javascript实现分栏显示小技巧附图
Oct 13 Javascript
JavaScript中操作Mysql数据库实例
Apr 02 Javascript
跟我学习javascript的浮点数精度
Nov 16 Javascript
bootstrap datetimepicker实现秒钟选择下拉框
Jan 05 Javascript
在vue里面设置全局变量或数据的方法
Mar 09 Javascript
vue 表单之通过v-model绑定单选按钮radio
May 13 Javascript
Vue事件修饰符native、self示例详解
Jul 09 Javascript
js实现图片实时时钟
Jan 15 Javascript
Threejs实现滴滴官网首页地球动画功能
Jul 13 Javascript
JS实现公告上线滚动效果
Jan 10 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实现比较全的数据库操作类
2015/06/18 PHP
jQuery对象和DOM对象使用说明
2010/06/25 Javascript
javascript showModalDialog 内跳转页面的问题
2010/11/25 Javascript
用JavaScript实现动画效果的方法
2013/07/20 Javascript
javascript字符串替换及字符串分割示例代码
2013/12/12 Javascript
js 获取时间间隔实现代码
2014/05/12 Javascript
jQuery操作表单常用控件方法小结
2015/03/23 Javascript
jQuery延迟加载图片插件Lazy Load使用指南
2015/03/25 Javascript
WordPress中鼠标悬停显示和隐藏评论及引用按钮的实现
2016/01/12 Javascript
详解Angularjs中的依赖注入
2016/03/11 Javascript
jQuery遍历json的方法(推荐)
2016/06/12 Javascript
JavaScript中Array对象用法实例总结
2016/11/29 Javascript
BootstrapValidator超详细教程(推荐)
2016/12/07 Javascript
使用Node.js实现ORM的一种思路详解(图文)
2017/10/24 Javascript
vue项目打包部署到服务器的方法示例
2018/08/27 Javascript
Vue CLI 3.x 自动部署项目至服务器的方法
2019/04/02 Javascript
vue 实现setInterval 创建和销毁实例
2020/07/21 Javascript
在Docker上部署Python的Flask框架的教程
2015/04/08 Python
浅析Python中的序列化存储的方法
2015/04/28 Python
Scrapy框架CrawlSpiders的介绍以及使用详解
2017/11/29 Python
python之PyQt按钮右键菜单功能的实现代码
2019/08/17 Python
pygame实现俄罗斯方块游戏(基础篇1)
2019/10/29 Python
pytorch实现线性拟合方式
2020/01/15 Python
tensorflow生成多个tfrecord文件实例
2020/02/17 Python
Python模拟伯努利试验和二项分布代码实例
2020/05/27 Python
加拿大花店:1800Flowers.ca
2016/11/16 全球购物
乌克兰电子产品和家用电器购物网站:TOUCH
2019/08/09 全球购物
世界汽车零件:World Car Parts
2019/09/04 全球购物
Java面试题:请问一下代码输出是什么
2015/05/27 面试题
自荐信如何“自荐”
2013/10/24 职场文书
卫生系统先进事迹
2014/05/13 职场文书
销售口号大全
2014/06/11 职场文书
商场促销活动总结
2014/07/10 职场文书
公安局负责人查摆问题及整改方案
2014/09/27 职场文书
Nginx+Tomcat负载均衡集群的实现示例
2021/10/24 Servers
深入解析Apache Hudi内核文件标记机制
2022/03/31 Servers