关于this问题
对于关键字this,其实很好理解,谁调用我就指向谁。下面举个例子说明:
其实这也是在学习闭包中的一个案例:
var name = "The window";
var obj = {
name : "The Object",
getNameFunc : function(){
return function(){
return this.name;
};
}
};
alert(obj.getNameFunc()());
很多博客中都是利用的这个例子,但是大部分博客说这个代码的结果是The window. 其实这是错误的。
我们仔细分析下:
第一步:obj.getNameFunc() 这一步很明显就可以看出我们的调用者是obj;而此时返回了一个函数对象,我们假想一个中间变量temp 接收这个对象。然后执行第二步。
第二步:从第一步中得知运行到这里了
temp();然后此时调用对象为谁,这里并没明确指出,然而它所处的容器是什么,恰恰是我们的window对象,所以可想而知,在return
this.name;这步中的this恰好指的是window。 然后window对象本身就有个默认属性name,且默认值为""。
由以上得知弹出的对话框中的值为一个空字符串"", 不相信你们可以去测试验证。(如有误,请大神指出,谢谢。)
随机推荐
- ZOJ 1229 M-Gift?!
https://vjudge.net/contest/67836#problem/M There is a beautiful river in a small village. N rocks ar ...
- CentOS基础命令
为网卡配置静态IP地址建议通过交互式界面nmtui进行配置 firewalld和iptablesCentOS7使用firewald取代原来的iptables,但实际上底层还是iptables,在上层加 ...
- IE BHO的IObjectWithSite接口
Internet Explorer的BHO的对象必须实现IObjectWithSite接口.该接口是IE用来对插件进行管理和通讯的一个接口,其有SetSite和GetSite两个方法,当IE加载和卸载 ...
- Visual C++中对运行时库的支持
原文地址:http://blog.csdn.net/wqvbjhc/article/details/6612099 一.什么是C运行时库 1)C运行时库就是 C run-time library,是 ...
- CURL & Fetch
CURL & Fetch https://kigiri.github.io/fetch/ https://stackoverflow.com/questions/31039629/conver ...
- bzoj4278[ONTAK2015]Tasowanie & bzoj1692[USACO 2007Dec]队列变换(Best Cow Line) 贪心正确性证明
做法网上到处都有就不说了. 这题其实是之前做的….不过由于人太傻现在才想明白比较字典序进行贪心的正确性…. 方便起见,在两个串的最右端都加上很大但不相同的字符,避免第lcp+1个字符不存在的边界. 如 ...
- 【bzoj1369】[Baltic2003]Gem 树形dp
题目描述 给出一棵树,要求你为树上的结点标上权值,权值可以是任意的正整数 唯一的限制条件是相临的两个结点不能标上相同的权值,要求一种方案,使得整棵树的总价值最小. 输入 先给出一个数字N,代表树上有N ...
- 史上最简单的 MySQL 教程(十五)「列属性 之 自动增长」
自动增长 自动增长:auto_increment,当对应的字段,不给值,或者是默认值,或者是null的时候,就会自动的被系统触发,系统会从当前字段中取已有的最大值再进行+1操作,得到新的字段值. 自增 ...
- POJ2135:Farm Tour——题解
http://poj.org/problem?id=2135 题目大意: 从1到n再回来,每条边只能走一次,问最短路. —————————————————— 如果不告诉我是费用流打死不会想这个…… 我 ...
- UVA.10130 SuperSale (DP 01背包)
UVA.10130 SuperSale (DP 01背包) 题意分析 现在有一家人去超市购物.每个人都有所能携带的重量上限.超市中的每个商品有其相应的价值和重量,并且有规定,每人每种商品最多购买一个. ...