Javascript四种调用模式中的this指向
第一种:函数直接调用执行的模式
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指向相关推荐
- 【转】JavaScript中的this关键字使用的四种调用模式
http://blog.csdn.net/itpinpai/article/details/51004266 this关键字 本意:这个.这里的意思. 在JavaScript中是指每一个方法或函数都会 ...
- JavaScript中函数四种调用模式
目录 JS中函数的四种调用模式 函数调用模式 方法调用模式 构造器调用模式 上下文调用模式 JS中函数的四种调用模式 在函数的调用模式中感觉最大的区别就是: this指向 函数调用模式 即通过函数名直 ...
- JavaScript高级第2天:定义函数的三种方式、函数的原型链结构、完整原型链、作用域以及作用域链、函数的四种调用模式、闭包、计数器、斐波那契数列优化、三种继承方式
JavaScript高级第二天 01-定义函数的三种方式 1.函数声明 function:可以先调用再声明,因为预解析(把函数声明.变量声明进行提升) function fn() {//函数体conl ...
- 函数的四种调用模式.上下文调用.call.apply
闭包:函数就是一个闭包,一个封闭的作用域; 返回函数,要返回多个函数就用一个对象封装一下, 立即执行函数+return 回调函数 JS动态创建的DOM,不会被搜索引擎抓取,对SEO不友好. /*win ...
- 函数的四种调用模式以及call()apply()和bind()
函数的四种调用模式 根据函数内部this的指向不同,可以将函数的调用模式分成4种 函数调用模式 方法调用模式 构造函数调用模式 上下文调用模式(借用方法模式) 函数:当一个函数不是一个对象的属性时,我 ...
- Android学习-Kotlin语言入门-变量、函数、语法糖、when、for-in、主构造函数、单例类、函数式API、集合遍历、隐式Intent、Activity生命周期、四种启动模式、标准函数
探究java语言的运行机制 变量.函数.语法糖 when条件语句 for循环 主构造函数.次构造函数 数据类和单例类 集合的创建与遍历 集合的函数式API 创建菜单 隐式使用Intent Activi ...
- 漫谈IA32的系统管理模式(SMM)以及IA32的四种CPU模式
转载: http://bbs.csdn.net/topics/300235884 写在前面 这是我的BIOS启蒙文章第二篇了,上一篇我谈了谈什么是legacy USB,和大家聊了聊在USB键盘背后 ...
- Android中Activity的四种启动模式
每次看到这种专有词汇都十分佩服创造者的智慧,创造者一定和我一样都中二,我已然确信. 我写博客的目的,就是希望不断磨练自己,让自己能够不将一件简单的事情讲的复杂,让自己能将一件复杂的事情讲的简单.嘛嘛, ...
- tp5类的属性不存在_thinkPHP5.1框架中Request类四种调用方式示例
本文实例讲述了thinkPHP5.1框架中Request类四种调用方式.分享给大家供大家参考,具体如下: 1. 传统调用 访问方式:http://127.0.0.1/demo/demo3/test?n ...
最新文章
- ping 用数字串代替IP地址
- Python学习笔记:web开发3
- linux 模块化编译,手把手教Linux驱动1-模块化编程 module
- error: 'syms' undefined near line 1 column 1
- 大疆无人机高程不准_大疆消费级无人机快速倾斜摄影测量实践
- java中静态代码块的用法 static用法详解
- java后端项目怎么实现图片预览_项目经验不重样!3个基于 SpringBoot 的图片识别处理系统送给你!...
- [leetcode] Power of Two 判断一个数是否是2的平方
- POP-一个点击带有放大还原的动画效果
- [NOI2019]序列
- 编译安装libmemcached库报错
- openoffice 64_科学网—四棱的核桃:卡片机傻拍2020(64)
- linux下python、django框架的配置
- 对索引存储与散列存储的一些形而上的思考
- 职场菜鸟捕食指北【初入职场篇】
- 沙龙回顾 | 从开发平台到智能供应链,AI技术如何推动企业智能化升级?
- 正则表达式切掉log日志前面不需要的内容
- 华硕ASUS Prime Z370M-PLUS II黑苹果OpenCore EFI
- 最新消息 CV四小龙之一 依图科创板上市“中止”
- 大数据24小时:链家研究院发布地产大数据产品Real Data,上海交大与依图共建AI联合实验室
热门文章
- LEFT OUTER JOIN
- fatal: could not read Username for ‘https://git.dev.tencent.com‘ 解决方法
- 域账户登录时提示“你的账户配置不允许使用这台电脑。请试一下其他电脑” 解决方案
- application.properties 中文乱码问题解决
- WebApi接口访问异常问题。尝试创建“testController”类型的控制器时出错。请确保控制器具有无参数公共构造函数
- Nginx gzip参数详解及常见问题(已解决)
- linux关闭的时候出现异常: java.net.ConnectException: 拒绝连接 (Connection refused)
- 中止git-pick-pick?
- AngularJS控制器中的#39;this#39;与$ scope
- 如何在jQuery的SELECT元素中选择特定选项?