原型对象 prtotytpe

 
function Person (name, age) {
this.name = name;
this.age = age;
this.say = function() {
console.log(1);
}
}
Person.prototype.say = function() {
console.log(2);
}
const ming = new Person('ming', 30);
ming.say();
 
这段代码的返回是  1
 
// 实例对象: 在 原型链上 属性 或 方法 的「检索/查询/寻找」逻辑:
// 假设 对象 ming 寻找 say 这个方法:
// 1)先在 ming 内部 寻找 say
// 2) 若 ming 内部没有 say ,往 ming 的 __proto__(原型对象 - Person.prototype)上去寻找
// 3)若 Person.prototype 这个「原型对象」上也没有,再往上(__proto__)找,直到找到 Object.prototype
// 4) 都找不到的话,则返回 undefined
 
 
// 凡是 构造函数 就都有 原型对象(Person.prototype)
// 凡是 实例对象 就都有 原型对象 (ming.__proto__)
 
 
// 原型链:
// ming.__proto__.__proto__
// 1) ming.__proto__     ->     ming 的原型对象
// 2)ming 的原型对象.__proto__     ->     ming 「的原型对象」「的原型对象」
// 这种形式叫「原型链」
 
// 原型链的尽头是: Object.prototype
// console.log(ming.__proto__.__proto__ === Object.prototype);
posted @   lknmn  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示