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

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

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

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

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

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

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

function shop() {
            alert(this.x);
        }
        var o = {};
        o.x = 2;
        o.y = shop;
        o.y(); // 2  对象调用自己的方法,
	// 相当于:
var x = 1;
function shop() {
            alert(this.x);
        }
        var o = {};
        o.x = 2;
        o.y = shop;
        o.y(); // 2  对象调用自己的方法,this指向的是自己

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

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

function Cart() {
            this.x = 1;
        }
        var c = new Cart();
        alert(c.x);// 1 this指向构造出来的对象。
        // 相当于:
var x = 1;
function Cart(){
            this.x = 2;
        }
        var c = new Cart();
        alert(c.x); // 2

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

js_this

TAG:
喜欢 2

文章评论 (0)

表情

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