javascript中this的学习(函数调用的四种模式)
- 2019-03-05 17:03:47
- 2,773 次阅读
- 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
(4)使用其它方法来改变this模式:(apply,call)

文章评论 (0)