通过对象调用方法设置_前端培训

通过对象调用方法设置

使用对象来调用其内部的一个方法,该方法的 this 是指向对象本身的。

  • 案例 1

答案:输出 jszhang。

我们要时刻牢记:谁调用的指向谁。这里是通过 myObj 进行的一个调用,所以此刻的 this 指向 myObj。而 myObj 里面存有 name: jszhang,所以输出 jszhang。

当然,我们要有自知之明:

  • 案例 2

这时候它又变成 window 指向了,此刻 let foo = myObj.showThis 只是一个定义,真正执行是在 foo()。那么此刻 foo() 是咋搞的呢?window.foo() 啊!毋庸置疑输出 undefined。

  • 案例 3

let myObj = {  name: ‘jszhang’,  showThis: function() {    console.log(this.name);  },}let foo = myObj.showThis;foo(); // 输出啥?

一般来说,这段代码输出应该是 undefined。

但是,这里需要注意的是,window.name 是当前 window 的名称,它是 window.open() 打开新网页这个方法的第二个参数的值。

所以这里输出的 window.name 是个空值 ”,或者当前存在的 window 的名称。

jszhang 通过一个例子带小伙伴们看看这个是怎么来的:

index.html

在新打开的网页中的控制台,输入 window.name,获取 jszhang 的网页。

结论:

  • 在全局环境中调用一个函数,函数内部的 this 指向的是全局变量 window。
  • 通过一个对象来调用其内部的一个方法,该方法的执行上下文中的 this 指向对象本身。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值