【this指向、函数、new关键字作用原理】

函数中this的指向

1、在普通函数中this指向window
2、在定时器函数中this指向window
3、在事件函数中this指向事件源
4、在对象函数中this指向当前对象 没有call() apply() bind() 不用考虑this指向(后面的几次this)
自定义函数中this指向当前对象
5、在构造函数中this指向实例化对象
6、在原型函数中:如果原型调用,this指向原型;如果实例对象调用,this指向实例对象
7、在数组函数中this指向当前数组
除了箭头函数,谁调用指向谁

创建对象的四种方式

1、字面量创建
2、new Object()
3、工厂模式
4、构造函数

对象继承

1、原型继承
2、构造继承(call方法继承)
3、拷贝继承

new关键字的作用和底层原理

一、作用:实例化对象返回一个新对象,让构造函数中的this指向实例化对象
二、new关键字的底层原理:
1、 var p1 = { } 创建了对象,开辟内存空间,地址存在栈中,
2、Person.call(p1) 通过call方法改变函数Person中的this指向,指向实例对象p1
3、p1._proto _==Person.prototype p1的指针指向构造函数原型,地址相同,属性和方法都能继承

原型、构造函数、实例对象三者关系:

1、任何一个函数都有prototype属性(截止目前)(箭头没有) 本身是一个对象
2、构造函数也有prototype属性,本身是一个对象,我们称之为原型
3、原型上的属性和方法都可以被实例化对象所继承*
4、任何一个对象都有constructor属性,实例化对象的constructor属性指向构造函数
5、原型也是对象也有constructto属性,原型对象的constructor属性指向构造函数
6、任何一个对象都有__proto_ 属性,实例对象的__proto _属性指向构造函数的原型
一个对象没有这个属性 返回undefined

函数的定义方式

1、函数声明

    function demo1() {
var num = 12
}

2、函数表达式

var demo2 = function(x,y) 【
var sum = x + y
}

3、构造函数

var demo3 = new Function (’x’,'y','return x + y')

函数的调用方式

1、函数名()
2、call()/apply() this指向 一个参数 多个参数
3、自调用 在函数后加()
4、对象中的函数调用
5、数组中的函数的调用

  • 33
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值