js 构造函数 构造函数原型

本文深入探讨了JavaScript中的构造函数和原型的概念。讲解了构造函数如何创建对象并定义私有属性,以及如何通过原型添加公共方法。同时,阐述了`new`关键字的作用,包括创建对象、设置`this`指向、添加属性以及对象的`__proto__`属性指向。还讨论了对象访问属性的查找顺序,私有属性优先于原型上的公有属性。最后,提到了如何修改构造函数原型的方法。
摘要由CSDN通过智能技术生成

构造函数 私有的

  1. 构造函数首字母大写
  2. 函数内部创建对象
 function CreatCar(carName, catAge) {
            this.carName = carName; //私有的
            this.catAge = catAge;

        }

构造函数原型 公有的

  1. 构造函数默认有一个原型对象 可以使用.prototype获取
  2. 该对象下的所有属性和方法就是 构造函数创建出来的所有对象的 共有属性和方法
  3. 但是创建出来的共有属性或方法 对象的 prototype内显示
  4. 构造函数名.prototype.属性/方法=属性值/function
   CreatCar.prototype.say = function() { //对象公有的
            console.log('汪汪');
        }

new都干了些什么

  1. 创建空对象{}存在内存中
  2. 将函数内的 this 指向这个新创建的对象
  3. 给对象添加属性
  4. 将新对象的_proto_属性指向函数的prototype
  5. 如果没有设置返回这个对象,会自动返回

构造函数原型执行问题

  1. 例如: cat.say = xxx 这句话想点关于给cat单独创建一个私有的say 属性或 方法
  2. 当一个对象访问某属性或方法的时候查找的顺序是 私有的---->共有的
  3. 当私有和公有同时出现相同的属性的时候私有的优先级高
  function CreatCar(carName, catAge) {
            this.carName = carName; 
            this.catAge = catAge;

        };
         CreatCar.prototype.say = function() { //对象公有的
            console.log('喵喵喵');
        }
        var cat = new CreatCar('小白', '3');
        var cat1 = new CreatCar('小花', '4');
        cat.say = function() {
            console.log("喵喵1");
        };//给cat在构造函数中(私有)添加了一个say
        cat.say()//喵喵1
        cat1.say()//喵喵喵 
        //想要通过cat更改构造函数原型 cat.__proto__.say=function()

函数

  1. 函数拥有原型对象,但是只有构造函数有用
  2. 我们称 new+ 构造函数创建出来的对象叫做实例化对象
  3. 实例化对象下有一个__proto__属性 该属性指的是 构造函数的原型对象()
  4. 构造函数的原型对象下默认只有一个 constructor属性,该属性指的是构造函数本身
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值