返回

原型与原型链

发布时间:2023-02-10 10:52:35 312
# javascript# html# webkit# java# java

记录一下js中比较基础且重要的原型链

<!doctype html>
<html lang="en">
<head>
<meta chatset="UTF-8>
<title>原型与原型链</title>
</head>
<script type="text/javascript">
function AAA() { // 内部语句
// this.prototype = {}
// this.prototype = new Object() // 与上面{} 效果相同
// 构造函数 (每个函数都是构造函数)
}
AAA.prototype.bbb = function () {
}
AAA.prototype.ccc = function () {
}
var bbb = new AAA() // 内部语句 this.__proto__ = AAA.prototype
console.log(AAA.prototype) // 原型对象(显式原型) 创建函数时添加的
console.log(AAA.prototype.constructor) // 构造函数
console.log(bbb.__proto__) // 原型对象(隐式原型) 创建对象的时候添加的

// 给原型对象添加属性(一般是方法)=》实例对象可以访问
</script>
</html>

原型与原型链_原型链

原型链(全称: 隐式原型连)

  • 所有函数的__proto__都相等(注意这里不是对象,是函数
  • 实例对象的隐式原型等于构造函数的显式原型
  • Object的原型对象是原型链的尽头 (Object.__proto__
  1. 读取对象属性值时,会自动到原型链中查找
  2. 设置对象的属性值时,不会查找原型链,如果当前对象中没有此属性,会直接添加此属性并设置值
  3. 方法一般会定义在原型中,属性一般通过构造函数定义在对象本身上

// Object是Function.prototype的实例对象

  • 所有函数的原型对象都是Object的实例对象,Object除外

1. 函数的显示原型指向的对象默认是空Object实例对象(但Object不满足)
2. 所有函数都是Function的实例(包含Function)
3. Object的原型对象是原型链的尽头

 

console.log(Object.prototype._proto_) // null

 

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
前端开发提效小技巧之业务功能篇 2023-02-10 10:09:53