原型和继承

原型是什么

简而言之 原型是函数的一个对象属性 创建一个函数的时候 会默认添加一个Prototype属性

我们接下来简单的实现一下

function test(name) {

this.name = name

}

console.dir(test);

console.log(test.prototype);

上述代码已经得到证实了

// prototype (原型 原型对象)

// 1 是函数的一个属性

// 2 是个对象

// 3 创建函数的时候会默认添加Prototype属性

__proto__又是什么呢

// proto 隐式原型

// 对象的属性

// 1 对象的一个属性

// 2 指向构造函数的prototype

接下来我们来证实一下这几句话

var obj = new test('小明')

console.log(obj.proto);

console.log(obj.proto === test.prototype);

证明完成

test.prototype也是一个对象 他也应该有__proto__ ,他指向的Object.prototype

也就是

console.log(test.prototype.proto === Object.prototype); //true

那么原型链是什么 ?

// 所谓的原型链就是

// obj {

// proto:test.prototype={

// proto:Object.prototype={

// proto:null

// }

// }

// }

并且给test.prototype中一个属性c 可以在obj中访问到 给Object.prototype一个属性 也可以在obj中访问到

继承是什么

// 继承方法

const parent = {

value: 2,

method() {

console.log(this);

return this.value + 1

}

}

console.log(parent.method());//3 不难理解

const child = {

proto: parent,

}

console.log(child.method());//3 this 指向child 但是属性中没有value 在原型链上查找 最后找到原型的value

child.value = 4

console.log(child.method());//child有value属性了 发生属性遮蔽

相关推荐
skilllite作者几秒前
Zed 1.0 编辑器深度评测与实战指南
开发语言·人工智能·windows·python·编辑器·agi
跨境数据猎手3 分钟前
反向海淘代购系统:1688 / 淘宝自动代采 + API 同步(附可用源码)
前端
lUie INGA8 分钟前
Go-Gin Web 框架完整教程
前端·golang·gin
a11177611 分钟前
“像风之翼“无人机巡检平台仪表盘
前端·javascript·开源·html·无人机
李白的天不白15 分钟前
vue 数据格式问题
前端·vue.js·windows
chxii17 分钟前
lua 基础语法(上)
开发语言·lua
wjs202418 分钟前
ASP 发送电子邮件
开发语言
a11177619 分钟前
QQ 宠物(怀旧 开源)前端electron项目
前端·开源·html
ZC跨境爬虫22 分钟前
跟着 MDN 学 HTML day_8:(高级文本语义标签+适配核心功底)
前端·css·笔记·ui·html
li16709027024 分钟前
第二十五章:C++11(下)
c语言·开发语言·数据结构·c++