js基础教程--原型链

一、原型函数

在 JavaScript 中,每个函数都被创建时都有一个函数原型(Function.prototype)属性,它是一个对象。在 JavaScript 中,函数原型对象是一个对象,它包含了函数的属性和方法。它是使用原型链实现继承的关键部分。函数原型对象有一个 constructor 属性,它指向函数本身。可以通过修改函数原型对象来添加新的属性和方法,从而使所有实例对象都能访问到这些属性和方法。

function MyClass() {
  // constructor function
}

// 添加一个属性到 MyClass 的原型对象上
MyClass.prototype.myProperty = 'Hello';

// 添加一个方法到 MyClass 的原型对象上
MyClass.prototype.myMethod = function() {
  console.log('World');
};

在这个例子中,MyClass.prototype 的属性和方法可以被该函数的所有实例访问,因为它们都共享同一个原型对象。

二、访问对象成员的原则

 对象访问成员的机制

         1  首先查找自身有没有,有就就近原则使用

         2  自身没有该成员,通过__proto__找到原型对象,看原型对象上有没有,有就执行

         3  假如原型对象上也没有,再找原型对象的__proto__ ,一直找到Object.prototype

         4  一直找到Object.prototype,找不到就undefined

 function Cat(name, age) {
        // this.name = name
        this.age = age
      }

      Cat.prototype.eat = function () {
        console.log('猫抓老鼠')
      }

      Cat.prototype.name = '亚洲猫王'
      const cat = new Cat('小花', 3) // {name: '小花', age: 3}
      // 访问对象成员的原则: 先查找自己身上有没有,有的话就使用,没有去原型查找
      console.log(cat.name)

三、三者关系

注意:Function也是一种构造函数,因此构造函数的__proto__就是Function的原型函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值