【JS】面向对象- 原型 prototype
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<script>
/*
* 原型 prototype
* 定义: 每一个函数天生自带一个属性 prototype 是一个对象
* 构造函数也有这个
* 因为prototype也是对象,所以可以使用对象操作语法给里面添加内容
* 对象
* 定义:每一个对象,在你访问它成员的时候,如果自己没有这个属性,就会去所属构造函数的prototype(原型)上查找
*
* */
function Person() {
Person.prototype.sayHi=function () {
console.log("我是prototype上的方法")
}
console.log(Person.prototype)
}
/*
* 创建一个实例化对象
* 因为p1是Person实例化出来的对象
* p1是属于Person这个构造函数
* 当你访问p1的sayHi成员的时候,p1没有
* 就会自动去Person的prototype(原型)上找
* */
var p1=new Person()
console.log(p1)
p1.sayHi()
var p2=new Person()
console.log(p2)
p2.sayHi()
/*
* 只需要在Person的原型上添加一些方法
* 所有的Person的每一个实例都可以使用,不会造成空间浪费
* */
console.log(p1.sayHi()===p2.sayHi())//true
</script>
</body>
</html>
作者:木子欢儿
出处:https://www.cnblogs.com/HGNET/p/16497444.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
部分文章来源于网络,如疏漏未标注原文地址或侵权,请联系进行删除。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现