下面的代码会输出什么结果?

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中如何工作相关推荐

  1. 谈谈我对Javascript中This对象的理解

    this 指针的隐式赋值 this总是指向调用该方法的对象: 在事件中,this指向触发这个事件的对象,特殊的是,IE中的attachEvent中的this总是指向全局对象Window: 显示操纵 t ...

  2. JavaScript中this工作原理

    ** this是JavaScript语言中的一个关键字 在JavaScript语言中,this可以是全局对象.当前对象或其它任意对象. 在AJAX中,this指向Window全局对象. 而在Backb ...

  3. JavaScript中this工作方式

    var x =0; var foo = {bar:{x:2,bar2:function () {console.log(this.x);}}}var a=foo.bar.bar2;foo.bar.ba ...

  4. java基础66 JavaScript中的事件、localtion对象、screen对象(网页知识)

    1.JavaScript中的事件注册 1.1.事件的注册方式 方式1:直接在html元素上注册<body onLoad="ready()"></body > ...

  5. 如何处理JavaScript中的事件处理(示例和全部)

    In this blog, I will try to make clear the fundamentals of the event handling mechanism in JavaScrip ...

  6. !! javascript_产量! 产量! 生成器如何在JavaScript中工作。

    !! javascript by Ashay Mandwarya ?️?? 由Ashay Mandwarya提供吗? 产量! 产量! 生成器如何在JavaScript中工作. (Yield! Yiel ...

  7. this调用语句必须是构造函数中的第一个可执行语句_谈谈JavaScript中的函数构造式和new关键字...

    您是否曾困惑于 Javascript 中的new关键字呢?是否曾想理解关于 function 和 constructor 的区别是什么呢? 大多数 Javascript 的新开发者不太想要使用new关 ...

  8. javascript中实例对象和构造函数关系、原型语法、原型链、call实现继承、apply调用函数、bind拷贝函数、拷贝继承、class类、super、严格模式、高阶函数、闭包、递归、es6简介

    实例对象和构造函数的关系及原型: 实例对象是通过构造函数创建出来的,实例对象的构造器constructor就是指向构造函数的:每个实例对象中的同一方法的指向是各不相同的,但是其属性值相同的属性可以相同 ...

  9. 了解JavaScript中的prototype (实例)

    JS中的phototype是JS中比较难理解的一个部分.javascript的方法可以分为三类:类方法,对象方法,原型方法. 例子: function People(name) {this.name= ...

最新文章

  1. Linux远程拷贝下载文件
  2. Android深度探索HAL与驱动开发—第8章
  3. QPainter中坐标系变换问题
  4. python 爬取作品集_Python批量抓取站酷ZCOOL作品图片并归档
  5. 线段树-HDU5737-这题有点神
  6. 基于django rest framework的mock server实践
  7. 深度学习(三十三)CRF as RNN语义分割-未完待续
  8. 主题:大胆预测下JS框架的走势(ZT)
  9. php文本框显示ip,php实现图形显示Ip地址的代码及注释_PHP教程
  10. 阶段2 JavaWeb+黑马旅游网_15-Maven基础_第5节 使用骨架创建maven的java工程_17maven工程运行环境修改...
  11. 高频逆变器有什么优缺点?它有哪些分类?-道合顺大数据Infinigo
  12. rpg制作大师_在线RPG大师班
  13. 嵌入式系统开发必读经典书目
  14. 新型城镇化3.0时代 数据交换是“智慧城市”的核心
  15. 初识Photoshop
  16. QAP,社会网络分析假设检验之一
  17. Android 实现禁用中文键盘
  18. 今天,就让坏得很的糟老头子来告诉你顺序表的基操,零基础也可get!
  19. 20 JNI - c++层 操作 java 层对象
  20. 显卡出问题,花屏,显示蓝条了,分辨率800*600,想办法终于把问题定位了

热门文章

  1. Hbase总结(十)Hhase性能调优
  2. 《Scikit-Learn与TensorFlow机器学习实用指南》 第01章 机器学习概览
  3. 获取控制器 nextResponder的简单应用
  4. JAVA入门[22]—thymeleaf
  5. OScached页面缓存的入门使用
  6. mac安全与隐私只有两个选项,少了一个任何来源
  7. js实现上传图片及时预览
  8. T4 Template Overview
  9. Windows组策略完善主机安全整改实战(1)
  10. 可视化图形(一):散点图-scatter()