实例谈谈this在JavaScript中如何工作
下面的代码会输出什么结果?
var fullname = 'John Doe'; var obj = {fullname: 'Colin Ihrig',prop: {fullname: 'Aurelio De Rosa',getFullname: function() {return this.fullname;}} };console.log(obj.prop.getFullname());var test = obj.prop.getFullname;console.log(test());
答案是Aurelio De Rosa和John Doe。
原因是,在一个函数中,this的行为,取决于JavaScript函数的调用方式和定义方式,而不仅仅是看它如何被定义的。
在第一个 console.log()调用中,getFullname() 被调用作为obj.prop对象的函数。所以,上下文指的是后者,函数返回该对象的fullname。与此相反,当getFullname()被分配到test变量时,上下文指的是全局对象(window)。这是因为test是被隐式设置为全局对象的属性。出于这个原因,该函数返回window的fullname,即定义在第一行的那个值。
实例谈谈this在JavaScript中如何工作相关推荐
- 谈谈我对Javascript中This对象的理解
this 指针的隐式赋值 this总是指向调用该方法的对象: 在事件中,this指向触发这个事件的对象,特殊的是,IE中的attachEvent中的this总是指向全局对象Window: 显示操纵 t ...
- JavaScript中this工作原理
** this是JavaScript语言中的一个关键字 在JavaScript语言中,this可以是全局对象.当前对象或其它任意对象. 在AJAX中,this指向Window全局对象. 而在Backb ...
- JavaScript中this工作方式
var x =0; var foo = {bar:{x:2,bar2:function () {console.log(this.x);}}}var a=foo.bar.bar2;foo.bar.ba ...
- java基础66 JavaScript中的事件、localtion对象、screen对象(网页知识)
1.JavaScript中的事件注册 1.1.事件的注册方式 方式1:直接在html元素上注册<body onLoad="ready()"></body > ...
- 如何处理JavaScript中的事件处理(示例和全部)
In this blog, I will try to make clear the fundamentals of the event handling mechanism in JavaScrip ...
- !! javascript_产量! 产量! 生成器如何在JavaScript中工作。
!! javascript by Ashay Mandwarya ?️?? 由Ashay Mandwarya提供吗? 产量! 产量! 生成器如何在JavaScript中工作. (Yield! Yiel ...
- this调用语句必须是构造函数中的第一个可执行语句_谈谈JavaScript中的函数构造式和new关键字...
您是否曾困惑于 Javascript 中的new关键字呢?是否曾想理解关于 function 和 constructor 的区别是什么呢? 大多数 Javascript 的新开发者不太想要使用new关 ...
- javascript中实例对象和构造函数关系、原型语法、原型链、call实现继承、apply调用函数、bind拷贝函数、拷贝继承、class类、super、严格模式、高阶函数、闭包、递归、es6简介
实例对象和构造函数的关系及原型: 实例对象是通过构造函数创建出来的,实例对象的构造器constructor就是指向构造函数的:每个实例对象中的同一方法的指向是各不相同的,但是其属性值相同的属性可以相同 ...
- 了解JavaScript中的prototype (实例)
JS中的phototype是JS中比较难理解的一个部分.javascript的方法可以分为三类:类方法,对象方法,原型方法. 例子: function People(name) {this.name= ...
最新文章
- Linux远程拷贝下载文件
- Android深度探索HAL与驱动开发—第8章
- QPainter中坐标系变换问题
- python 爬取作品集_Python批量抓取站酷ZCOOL作品图片并归档
- 线段树-HDU5737-这题有点神
- 基于django rest framework的mock server实践
- 深度学习(三十三)CRF as RNN语义分割-未完待续
- 主题:大胆预测下JS框架的走势(ZT)
- php文本框显示ip,php实现图形显示Ip地址的代码及注释_PHP教程
- 阶段2 JavaWeb+黑马旅游网_15-Maven基础_第5节 使用骨架创建maven的java工程_17maven工程运行环境修改...
- 高频逆变器有什么优缺点?它有哪些分类?-道合顺大数据Infinigo
- rpg制作大师_在线RPG大师班
- 嵌入式系统开发必读经典书目
- 新型城镇化3.0时代 数据交换是“智慧城市”的核心
- 初识Photoshop
- QAP,社会网络分析假设检验之一
- Android 实现禁用中文键盘
- 今天,就让坏得很的糟老头子来告诉你顺序表的基操,零基础也可get!
- 20 JNI - c++层 操作 java 层对象
- 显卡出问题,花屏,显示蓝条了,分辨率800*600,想办法终于把问题定位了