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