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

function add(a,b){  console.log(this);   return a+b;
}
add(1,2)
//this===window 这里的this指向是window的

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

var people={  name:'wang',   sex:'男',  eat:function(){    console.log(this);   }
}
people.eat();
//this===对象,对象方法调用时,this指向被调用者   

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

function People(){  this.eat=function(){   console.log(this);   }
}
var wang=new People();
wang.eat();
//对象调用自己的方法,this===wang,谁new的this指向谁

第四种:call和apply调用模式

  call方法有多个参数,第一个是要绑定给this的值,后面跟是若干。

  apply方法有两个参数,第一个是要绑定给this的值,第二个是一个参数数组可以放若干。

 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);

转载于:https://www.cnblogs.com/wangmaoling/p/6535801.html

Javascript四种调用模式中的this指向相关推荐

  1. 【转】JavaScript中的this关键字使用的四种调用模式

    http://blog.csdn.net/itpinpai/article/details/51004266 this关键字 本意:这个.这里的意思. 在JavaScript中是指每一个方法或函数都会 ...

  2. JavaScript中函数四种调用模式

    目录 JS中函数的四种调用模式 函数调用模式 方法调用模式 构造器调用模式 上下文调用模式 JS中函数的四种调用模式 在函数的调用模式中感觉最大的区别就是: this指向 函数调用模式 即通过函数名直 ...

  3. JavaScript高级第2天:定义函数的三种方式、函数的原型链结构、完整原型链、作用域以及作用域链、函数的四种调用模式、闭包、计数器、斐波那契数列优化、三种继承方式

    JavaScript高级第二天 01-定义函数的三种方式 1.函数声明 function:可以先调用再声明,因为预解析(把函数声明.变量声明进行提升) function fn() {//函数体conl ...

  4. 函数的四种调用模式.上下文调用.call.apply

    闭包:函数就是一个闭包,一个封闭的作用域; 返回函数,要返回多个函数就用一个对象封装一下, 立即执行函数+return 回调函数 JS动态创建的DOM,不会被搜索引擎抓取,对SEO不友好. /*win ...

  5. 函数的四种调用模式以及call()apply()和bind()

    函数的四种调用模式 根据函数内部this的指向不同,可以将函数的调用模式分成4种 函数调用模式 方法调用模式 构造函数调用模式 上下文调用模式(借用方法模式) 函数:当一个函数不是一个对象的属性时,我 ...

  6. Android学习-Kotlin语言入门-变量、函数、语法糖、when、for-in、主构造函数、单例类、函数式API、集合遍历、隐式Intent、Activity生命周期、四种启动模式、标准函数

    探究java语言的运行机制 变量.函数.语法糖 when条件语句 for循环 主构造函数.次构造函数 数据类和单例类 集合的创建与遍历 集合的函数式API 创建菜单 隐式使用Intent Activi ...

  7. 漫谈IA32的系统管理模式(SMM)以及IA32的四种CPU模式

    转载: http://bbs.csdn.net/topics/300235884 写在前面   这是我的BIOS启蒙文章第二篇了,上一篇我谈了谈什么是legacy USB,和大家聊了聊在USB键盘背后 ...

  8. Android中Activity的四种启动模式

    每次看到这种专有词汇都十分佩服创造者的智慧,创造者一定和我一样都中二,我已然确信. 我写博客的目的,就是希望不断磨练自己,让自己能够不将一件简单的事情讲的复杂,让自己能将一件复杂的事情讲的简单.嘛嘛, ...

  9. tp5类的属性不存在_thinkPHP5.1框架中Request类四种调用方式示例

    本文实例讲述了thinkPHP5.1框架中Request类四种调用方式.分享给大家供大家参考,具体如下: 1. 传统调用 访问方式:http://127.0.0.1/demo/demo3/test?n ...

最新文章

  1. ping 用数字串代替IP地址
  2. Python学习笔记:web开发3
  3. linux 模块化编译,手把手教Linux驱动1-模块化编程 module
  4. error: 'syms' undefined near line 1 column 1
  5. 大疆无人机高程不准_大疆消费级无人机快速倾斜摄影测量实践
  6. java中静态代码块的用法 static用法详解
  7. java后端项目怎么实现图片预览_项目经验不重样!3个基于 SpringBoot 的图片识别处理系统送给你!...
  8. [leetcode] Power of Two 判断一个数是否是2的平方
  9. POP-一个点击带有放大还原的动画效果
  10. [NOI2019]序列
  11. 编译安装libmemcached库报错
  12. openoffice 64_科学网—四棱的核桃:卡片机傻拍2020(64)
  13. linux下python、django框架的配置
  14. 对索引存储与散列存储的一些形而上的思考
  15. 职场菜鸟捕食指北【初入职场篇】
  16. 沙龙回顾 | 从开发平台到智能供应链,AI技术如何推动企业智能化升级?
  17. 正则表达式切掉log日志前面不需要的内容
  18. 华硕ASUS Prime Z370M-PLUS II黑苹果OpenCore EFI
  19. 最新消息 CV四小龙之一 依图科创板上市“中止”
  20. 大数据24小时:链家研究院发布地产大数据产品Real Data,上海交大与依图共建AI联合实验室

热门文章

  1. LEFT OUTER JOIN
  2. fatal: could not read Username for ‘https://git.dev.tencent.com‘ 解决方法
  3. 域账户登录时提示“你的账户配置不允许使用这台电脑。请试一下其他电脑” 解决方案
  4. application.properties 中文乱码问题解决
  5. WebApi接口访问异常问题。尝试创建“testController”类型的控制器时出错。请确保控制器具有无参数公共构造函数
  6. Nginx gzip参数详解及常见问题(已解决)
  7. linux关闭的时候出现异常: java.net.ConnectException: 拒绝连接 (Connection refused)
  8. 中止git-pick-pick?
  9. AngularJS控制器中的#39;this#39;与$ scope
  10. 如何在jQuery的SELECT元素中选择特定选项?