this调用语句必须是构造函数中的第一个可执行语句_javascript之闭包和原型(第七节 this)Web 前端知识分享...

this

函数中this到底取何值,是在函数真正被调用执行的时候确定的,函数定义的时候确定不了,因为this的取值是执行上下文环境的一部分,每次调用函数,都会产生一个新的执行上下文环境。

构造函数

所谓构造函数就是用来new对象的函数。其实严格来说,所有的函数都可以new一个对象,但是有些函数的定义是为了new一个对象,而有些函数则不是。另外注意,构造函数的函数名第一个字母大写(规则约定)

函数作为对象的一个属性

如果函数作为对象的一个属性时,并且作为对象的一个属性被调用时,函数中的this指向该对象

什么是this

  1. 当this所在函数是处理函数时,this是事件源
  2. 当this所在函数时构造函数时,this是new出来的对象。必须有new时(调用构造函数时),才能分辨this。
  3. 当this所在函数是类的方法时(要对象调用),必须调用改函数时,才能知道this是调用函数是所属对象
  4. 当this所在函数是普通函数时,this是window对象
  5. 函数用call或者apply调用

当一个函数被call和apply调用时,this的值就取传入的对象的值。

全局 & 调用普通函数

全局环境下,this永远是window

普通函数在调用时,其中的this也都是window

其实,不仅仅是构造函数的prototype,即便是在整个原型链中,this代表的也都是当前对象的值。

0d1ffe41781858ceb072e1789fe11c21.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值