JavaScript this个人理解
来源:互联网 发布:天正建筑软件学习 编辑:程序博客网 时间:2024/05/16 08:34
一.调用公共函数,this默认指向的为window
直接上几个代码
1.
var a = 10;function test(){test.a=20;alert(this.a);}test();结果10
2.
var a =10;function test(){test.a=20;alert(this.a);test1();}function test1(){alert(this.a);}test();结果:10 10
3.
var a = 10;function test(){var a;a = 5;alert(a);alert(this.a);}test();结果: 5 10
结论:
从上面的代码的结果来看, this指向的对象为window,每当alert(this.a) 此时的值都是a=10;
在每次调用test()来看,都没有给test绑定对象(除window外,因为 test(); <==> window.test();),故此时的this默认指向为window,而所有的公共变量都可以以这种
方式来写:window.a = 10 <==> var a = 10
故每次的alert(this.a) <==> alert(window.a)
所以结果为 10
二.给函数绑定对象
直接上代码
1.
<span style="white-space:pre"></span>var a = 10;var b = function(){b.a = 20;alert(this.a);}b.c = function(){alert(this.a);}b();b.c();结果: 10 20
2.
<span style="white-space:pre"></span>var a =10;function test(){test.a = 20;this.a = 30;}b = new test();alert(test.a);alert(b.a);结果: 20 30
结论:
代码二1中第一个this.a 仍然是指向window alert(this.a) <==>alert(window.a);
第二个this.a则指向b对象,因为函数是这么定义的 b.c = function(){}; 所以该函数绑定了b对象(该函数的拥有者),故调用该函数b.c();函数中this指向b对象
alert(this.a); <==> alert(b.a);
代码二2中的原理也是一样
创建一个b实例对象 test() 函数绑定的对象就是b(该函数的拥有者) 在函数test() this指向b,所有this.a <==> b.a
0 0
- JavaScript this个人理解
- 个人对this关键字理解
- 对于this和$(this)的个人理解
- 理解 JavaScript 中的 this
- JavaScript this 深入理解
- 理解JavaScript 中的 this
- Javascript this的理解
- 理解JavaScript中的this
- JavaScript 理解this对象
- JavaScript-this理解
- Javascript this理解
- JavaScript this 的理解
- javascript中的关键字this理解
- 理解 JavaScript 的 this 关键字
- 理解 JavaScript 的 this 关键字
- coffeescript(javascript) this 的理解
- 对javascript的this理解
- JavaScript 对this的理解
- The Snail(杭电 1302)
- 第11周项目六 回文~素数(7)
- How tomcat works 笔记 01
- POJ 2686 Traveling by Stagecoach
- poj2209
- JavaScript this个人理解
- 量化投资精华贴
- 开源规则流引擎实践
- poj2365
- 逍遥棋牌怎么样,是不是骗人的?
- 第一章 错误处理
- poj2575
- POJ2578
- poj 1019 Number Sequence (组合数学)