原型和继承

原型是什么

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

相关推荐
仿生狮子1 小时前
✂️ Nuxt 最简单的字体裁剪工具:Fontize
javascript·vue.js·nuxt.js
石小石Orz4 小时前
我发现了开发者AI产品营收的新方向
前端·虚拟现实
老马识途2.04 小时前
关于跨域问题的总结
java·前端
魔力女仆4 小时前
分享一个 JS 鼠标跟随贪吃蛇背景库
开发语言·javascript·计算机外设
2401_894915535 小时前
GEO 搜索优化完整源码从零部署:环境配置、集群搭建全流程
开发语言·python·tcp/ip·算法·unity
麻瓜老宋5 小时前
AI开发C语言应用按步走,表达式计算器calc的第二十二步,分号赋值链式修复、TOKEN_ASSIGN
c语言·开发语言·atomcode
别惊醒渔人6 小时前
Vue3 Diff 优化:最长递增子序列 LIS
前端·javascript·vue.js
颜酱6 小时前
07 | 把字段与指标同步到 Qdrant(生成阶段)
前端·人工智能·后端
用户059540174466 小时前
把AI长期记忆测试从手动验证换成pytest,2天揪出11个隐藏Bug
前端·css
Larcher6 小时前
从“加载模型”界面到端侧推理:拆解一个 React + WebGPU 大模型 Demo
javascript·后端