javascript中this的学习(函数调用的四种模式)
- 2019-03-05 17:03:47
- 2,444 次阅读
- 2
在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
文章评论 (0)