js的基础知识点

本文介绍了JavaScript中创建对象的三种方式,包括对象字面量、构造函数和工厂模式,以及new关键字的工作原理。详细阐述了构造函数中的this指向和函数中的this绑定规则。接着讨论了原型链、对象继承的不同方式,如原型链继承、构造函数继承及其弊端。寄生组合式继承作为一种优化策略被提出。最后,提到了this的四种绑定情况以及Call、Apply和Bind方法的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

js相关基础知识点

1、创建对象的三种方式:
1、	对象字面量创建对象:
	a)	类型为Object
	b)	缺点:当需要定义大量对象时,会出现大量的重复代码
2、	构造函数创建对象:
	a)	本质上是一个函数,只不过函数被new关键字调用了
	b)	特点:首字母大写,被new关键字调用
3、	工厂模式创建对象:
	a)	缺点:1、使用工厂模式创建的对象类型一致Object
	b)	2、相同的逻辑代码(函数)被保存到了不同的内存空间内,导致内存空间浪费

2、new关键字具体做了什么操作:
1、在内存中创建了一个新的对象(空对象)
2、这个对象内部的prototype属性会被赋值为改构造函数的prototype属性
3、构造函数内部的this,会指向创建出来的新对象
4、执行函数的内部代码
5、如果构造函数没有返回非空对象,则返回创建出来的新对象
3、构造函数中的this指向由构造函数所产生的实例对象
4、函数中的this指向函数的调用者
5、函数和方法的定义:
函数:如果一个对象的属性值为非函数,那么这个属性就称之为对象属性
方法:如果一个对象的属性值为函数类型,那么这个属性就称之为对象方法
6、实例对象的隐式原型属性指向其对应构造函数的原型对象
7、什么是原型链:
   原型链是指在每个实例对象身上都有一个隐式原型属性,该隐式属性指向该对象对应的构造函数的原型对象,当寻找一个对象属性时,首先从自身进行查找,找到即返回,如果自身没有找到,该属性就会沿着__proto__查找对应的原型对象,直到原型链的最顶端,找到就返回,没有找到就返回undefined

**8、对象继承的三种方式:**原型链继承、构造函数继承、寄生组合式继承

9、原型链继承的弊端:
  1、打印对象,所继承的属性是看不到的
  2、创建出了两个对象,直接修改对象上属性是给本对象添加了一个新的属性,获取引用时,修改引用中的值会相互影响
  3、在实现类的过程中没有传递参数
10、构造函数继承的弊端:
1、在什么情况下都会调用两次父类的构造函数

11、什么是寄生组合式继承:

让子类的原型对象=新创建的一个对象 并且 新创建的对象的原型是父类的原型

12、函数的this指向

	1、在全局作用域中的this指向window
	2、函数中的this指向函数的调用者
	3、箭头函数中的this指向函数定义时作用域中的this指向
	4、在事件中,this指向触发这个事件的对象(dom)

13、绑定this指向的几种方式:

1、默认绑定:全局环境中,this默认绑定到window
2、隐式绑定:一般地,被直接对象所包含的函数调用时,也称为方法调用,this隐式绑定到该直接对象。隐式丢失是指被隐式绑定的函数丢失绑定对象,从而默认绑定到window
3、显示绑定:通过call apply bind方法将对象绑定到this上,叫做显示绑定
4、new绑定:如果函数或者方法调用之前带有关键字new,他就构成构造函数调用,对于this绑定来说称为new绑定

14、改变函数内部this指向的三种方法以及区别:

 Call():调用一个对象的一个方法,用另一个对象替换当前对象
 Apply():调用一个对象的一个方法,用另一个对象替换当前对象
 Bind():返回结果时函数,需要自己调用
区别:
	Call和apply都是函数自动执行,bind需要手动调用

apply():调用一个对象的一个方法,用另一个对象替换当前对象
Bind():返回结果时函数,需要自己调用
区别:
Call和apply都是函数自动执行,bind需要手动调用


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值