原型和继承

原型是什么

简而言之 原型是函数的一个对象属性 创建一个函数的时候 会默认添加一个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属性了 发生属性遮蔽

相关推荐
IMPYLH1 分钟前
HTML 的 <rp> 元素
前端·javascript·html
似水এ᭄往昔3 分钟前
【Qt】--常用控件(输入类控件)
开发语言·qt
晴天1610 分钟前
npm install -f(--force)深度解析:作用原理、报错根源与风险避坑指南
前端·npm·node.js
IT_陈寒12 分钟前
React的状态更新竟然不是同步的?!坑了我一整天
前端·人工智能·后端
David猪大卫18 分钟前
【C++修炼】异常
开发语言·c++·经验分享·笔记·学习·考研·面试
科里 Coralyx23 分钟前
CoT Toolformer ReAct:工具调用、推理链与 Agent 的起源
前端·react.js·前端框架
xy345324 分钟前
谷歌Lighthouse安装指南(Chrome扩展程序可视化操作)
前端·chrome·测试工具·lighthouse
玖玥拾29 分钟前
Lua 基础语法(六)xLua Lua 调用 C# 交互
开发语言·unity·c#·lua
Joolun商城源码_Java32 分钟前
Java 商城技术栈怎么选:单体、微服务还是前后端分离多端?
java·开发语言·微服务
charlie11451419134 分钟前
浅谈C++的列表初始化std::initializer_list
开发语言·数据结构·c++·list·开源项目