javascript中this的学习(函数调用的四种模式)

  • 2019-03-05 17:03:47
  • 2,613 次阅读
  • 稿源:天马行空

在JavaScript中this调用对象地址的引用(谁调用this就是谁)。也就是说this指向函数的调用者。下面是this的这四种模式的具体内容。

(1)this的第一种模式:函数执行模式

在这种模式中,方法相当于是在window下定义的,因此在调用的时候相当于是调用window.add()函数;所有在add中的this就是window.

  1. function add() {
  2. x = 1;//如果在函数中定义一个变量并且没有加var修饰,那么这个变量相当于全局变量,相当是在window下面
  3. alert(this.x);
  4. }
  5. add();// 1 this === window // true
  6. // 相当于:
  7. var x = 1;
  8. function add(){
  9. alert(this.x);
  10. }
  11. add(); // 1

(2)this的第二种模式:对象方法的调用模式

  1. function shop() {
  2. alert(this.x);
  3. }
  4. var o = {};
  5. o.x = 2;
  6. o.y = shop;
  7. o.y(); // 2 对象调用自己的方法,
  8. // 相当于:
  9. var x = 1;
  10. function shop() {
  11. alert(this.x);
  12. }
  13. var o = {};
  14. o.x = 2;
  15. o.y = shop;
  16. o.y(); // 2 对象调用自己的方法,this指向的是自己

(3)this的第三种模式:构造器的调用模式

在这种模式中,由于用到new关键字,所以c相当于是创建出来对象的地址的引用。因此在这里的this就是c.

  1. function Cart() {
  2. this.x = 1;
  3. }
  4. var c = new Cart();
  5. alert(c.x);// 1 this指向构造出来的对象。
  6. // 相当于:
  7. var x = 1;
  8. function Cart(){
  9. this.x = 2;
  10. }
  11. var c = new Cart();
  12. alert(c.x); // 2

(4)使用其它方法来改变this模式:(apply,call)

js_this

TAG:
喜欢 2

文章评论 (0)

表情

大眼 可爱 大笑 坏笑 害羞 发怒 折磨 快哭了 大哭 白眼 晕 流汗 困 腼腆 惊讶 憨笑 色 得意 骷髅 囧 睡觉 眨眼 亲亲 疑问 闭嘴 难过 淡定 抗议 鄙视 猪头