this是js的一个关键字,随着函数使用场合不同,this的值会发生变化。但是总有一个原则,那就是this指的是调用函数的那个对象。

1、纯粹函数调用。

function test() {
this.x = 1;
alert(x);
}
test();

其实这里的this就是全局变量。看下面的例子就能很好的理解其实this就是全局对象Global。

var x = 1;
function test() {
alert(this.x);
}
test();//1 var x = 1;
function test() {
this.x = 0;
}
test();
alert(x);//

2、作为方法调用,那么this就是指这个上级对象。

function test() {
alert(this.x);
} var o = {};
o.x = 1;
o.m = test;
o.m(); //

3、作为构造函数调用。所谓构造函数,就是生成一个新的对象。这时,这个this就是指这个对象。

function test() {
this.x = 1;
}
var o = new test();
alert(o.x);//

4、apply调用

this指向的是apply中的第一个参数。

var x = 0;
function test() {
alert(this.x);
} var o = {};
o.x = 1;
o.m = test;
o.m.apply(); //0
o.m.apply(o);//

当apply没有参数时,表示为全局对象。所以值为0。

最新文章

  1. jQuery简单实现iframe的高度根据页面内容自适应的方法(转)
  2. JavaScript学习笔记之数值
  3. [html]三列居中自动伸缩的结构
  4. 【转】Java日期计算之Joda-Time
  5. java面试每日一题5
  6. 消息队列与RabbitMQ
  7. 关于SQL中数据类型(float和real)和 .NET Framework 中数据类型(float和double)的问题
  8. xml(3)--dom4j实现crud操作
  9. JAVA传值与传址
  10. TensorFlow文档翻译-01-TensorFlow入门
  11. 基于 HTML5 的 3D 工控隧道案例
  12. UITextField 基本设置
  13. MongoDB之Array Object的特殊操作
  14. 研究生flag
  15. 查看、生成 SSH 密钥用于安全登陆
  16. javascript精雕细琢(二):++、--那点事
  17. 20162303石亚鑫 第十二周hash补充博客
  18. MyBatis的简单入门学习
  19. 【转载】retrofit 2 源码解析
  20. Event 同步机制

热门文章

  1. hdu 3474 Necklace 单调队列
  2. sql server web管理软件
  3. CodeForces 604A(浮点数)
  4. SQL语句的拼凑
  5. JavaScript & jQuery & Bootstrap
  6. css 样式加载次序
  7. Laravel之Ueditor
  8. Linux时间同步+国内常用的NTP服务器地址
  9. How do I use the API correctly
  10. 解决linux-mysql 登录时,报异常:Access denied for user 'root'@'localhost'