博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个js闭包问题的解答
阅读量:4287 次
发布时间:2019-05-27

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

在这篇文章中,最后留了一个问题,代码在下:

可能第一次看到这个问题,以为是弹出My SF,可偏偏就不是,这是为什么呢?我们解析一下这个代码。

segmentFault是一个对象,定义了一个name属性和getNameFunc()方法,但要注意的是,segmentFault.getNameFunc()返回的是一个函数引用,所以最后一句代码可以分解为:

var test = segmentFault.getNameFunc();alert(test());   //结果一样

test是一个函数的引用,那么它的函数体就是getNameFunc()返回的内容

function test(){return this.name;}

这样就很清晰了,此时,test()的作用域不再是segmentFault对象了,而是全局作用域,其this指的就是window,可以验证

alert("test" in window);   //弹出true

所以this.name==window.name,在全局域中,name的值是trigkit4,so,最终弹出的就是trigkit4。

原文:

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

你可能感兴趣的文章
java基础/StringbBuffer/StringBuilder
查看>>
iOS 公钥/私钥/不对称加密
查看>>
java/数组排序/冒泡排序/选择排序/二分查找/Arrays/进制转换/装箱/拆箱/
查看>>
java/Character类/正则表达式/Pattern/Matcher/Math/Random类
查看>>
java/System/BigInteger/BigDecimal/Date/Calender
查看>>
java/对象数组/集合
查看>>
java/数据结构/栈/队列/数组/链表/ArrayList/泛型/增强for/静态导入/可变参数
查看>>
java基础/集合框架/set/hasset/linkHasset/TreeSet/
查看>>
java基础/map/hasmap/linkedhasmap/treemap/collections工具类
查看>>
java集合的总结
查看>>
java. tr'y--catch/IO流/file/
查看>>
C语言socket编程总结(一)getaddrinfo()函数详解
查看>>
C语言socket编程总结(二) inet_pton,/inet_ntop
查看>>
C语言socket编程总结(三) struct sockaddr_in /struct sockaddr_in6/struct addrinfo 结构体
查看>>
C语言socket总结(四)htonl/ntohl/ntohs/ntohs/
查看>>
C 语言socket编程基础/memset()
查看>>
C语言socket总结(五) memset()和bzero()
查看>>
C语言socket编程总结(六) / int socket(int domain, int type, int protocol)
查看>>
C语言socket编程总结(七)int socket/connect()/send()/recv()/close()/shutdown()/recvfrom
查看>>
C语言socket编程总结(八)bind()
查看>>