this关键字

this关键字的理解

  • this 是一个动态指针,它指向一个方法或者函数的调用环境
  • this指向的是一个对象,根据函数调用的方式不同,this会指向不同的对象—— 一个方法点在谁的身上调用,该方法内部的this就指向被点的对象,如果谁都没点,就指向window

对定义进行解释

  • 对象里增加的fun与全局里fun函数等价
var name = "Jerry";

function fun() {
    console.log(name);
}

var o = {
    name: "Tom",
    sayName: fun
}

console.log(o.sayName === fun);
//trun
  • 但是分别调用其函数打印出来的结果就不对了:
  • 打印o.sayName()结果是一个object
  • 以方法的形式调用,哪个对象调用this就是哪个对象
var name = "Jerry";

function fun() {
     console.log(this);
 }

 var o = {
     name: "Tom",
     sayName: fun
 }
 
 o.sayName();
 //Object { name: "Tom", sayName: fun() }
  • 打印fun()结果是window
  • 以函数调用时,this永远是window
var name = "Jerry";

function fun() {
    console.log(this);
}

var o = {
    name: "Tom",
    sayName: fun
}

fun();
//Window http://127.0.0.1:5500/exercise.html

例子:

var name = "Jerry";

function fun() {
     console.log(this.name);
 }

 var o1 = {
     name: "Tom",
     sayName: fun
 }

 var o2 = {
     name: "Lucy",
     sayName: fun
 }
 
 fun();
 //Jerry
 o1.sayName();
 //Tom
 o2.sayName();
 //Lucy
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值