孔子的生日JS中的继承—构造函数与实例实例
1. 概念
实例可以当作⼀个对象的描述
const person =new Object()
// person 是 Object的实例
2. 实例与对象的关系
仙人掌防辐射是真的吗
实例都是对象,⽽对象不都是实例
const chine ={
area:'亚洲',
color:'黄',
// ...
}
黑枸杞的console.log( chine.__proto__.constructor === Object )// true
// chine 是 Object 的实例
// Object 不都是 chine
构造函数
主要解答三个问题:
1. 什么是构造函数
2. 构造函数与普通函数有什么不同中枢性发热
3. 实例化函数时都发⽣了什么
1.什么是构造函数
所有普通函数都可以当作构造函数。
2.构造函数与普通函数有什么不同
1. 使⽤new关键字进⾏调⽤
颜色对对碰2. 命名⼀般以⼤写开头
3. 内部使⽤this来创建属性
4. 构造函数默认返回⼀个新对象,并具有构造函数定义的属性和⽅法
3.实例化函数时都发⽣了什么
我们先看⼀个实例化例⼦,再进⾏分析
function Person(){
this.name ='huhuf5'
this.x ='男'
设备租赁合同模板}
const person =new Person()
// 分析
person.name ==='huhuf5'
person.x ==='男'
person.__proto__ === Person.prototype
结合原型链知识以及构造函数的特点我们知道:
1. 创建了⼀个新的对象
2. 将原型指向构造函数
3. 返回⼀个实例对象
什么是普世价值
根据特点我们可以⾃⼰来实现⼀个new
function newFn(){
无氧let obj =new Object()// 创建⼀个新的对象
obj.__proto__ = Person.prototype // 指向构造函数原型
let result = Person.apply(obj , arguments)// 绑定this,执⾏构造函数return typeof result ==='object'? result : obj // 总是返回⼀个对象}