博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小tips:JS中this操作执行像(object.getName = object.getName)()操作改变了this
阅读量:7015 次
发布时间:2019-06-28

本文共 557 字,大约阅读时间需要 1 分钟。

var name = "The window";var object = {    name: "My Object",    getName: function(){        console.log(this.name);    }}object.getName(); // My Object (object.getName)(); // My Object (object.getName = object.getName)(); // The window

来分析下调用的结果:

第一行代码跟平常一样调用了object.getName()返回了My Object ,因为this.name就是object.name

第二行代码在调用这个方法之前给它加了一个括号。虽然加了一个括号后,就好像只是在引用一个函数,但是this的值得到了维持,因为object.getName(object.getName)的定义是相同的。

第三行代码先执行了一条赋值语句,然后再调用赋值后的结果。因为这个赋值表达式的值是函数本身,所以this的值不能得到维持,结果就返回了The window

当然你不大可能像第二行和第三行代码一样调用这个方法。这个例子只是说明了一个细微的语法变化,都有可能意外的改变this的值。

转载地址:http://amzxl.baihongyu.com/

你可能感兴趣的文章
JavaClass文件结构你知道多少?
查看>>
如何使用AE来制作烟雾粒子特效
查看>>
PromiseKit入门 之 Objective-C
查看>>
.NET Core 2.1中改进的堆栈信息
查看>>
ThreadLocal及InheritableThreadLocal的原理剖析
查看>>
java版电子商务spring cloud分布式微服务b2b2c社交电商 (六)springboot整合mybatis
查看>>
走马灯
查看>>
深入理解Hadoop之HDFS架构
查看>>
R语言绘制正太分布图,并进行正太分布检验
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
11g数据导入10g数据库方法实现
查看>>
MySql
查看>>
弹窗滚动scrolltop, scroll();方法
查看>>
php-cgi占用cpu100%的一次排障之旅
查看>>
Exchange Server 2013 RTM发布
查看>>
windows 性能监视器
查看>>
如何测试网页的登录页面
查看>>
linux系统下的shell×××
查看>>
④Windows Server 8 个人独享虚拟桌面
查看>>