关于原型链添加属性和方法与构造函数的不同

文章探讨了JavaScript中使用原型链的优势,包括节省内存、动态性、继承和扩展功能,以及如何通过原型对象提高代码的维护性。与构造函数创建的方法和变量不同,原型链上的方法是所有实例共享的,从而简化了代码结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用原型链可以

  1. 节省内存:使用原型链方法,类的方法和属性只需在原型对象上定义一次,所有实例共享同一个方法和属性的引用,不会在每个实例中重复存储,从而节省了内存空间。

  2. 动态性:原型链方法可以在实例化后动态修改,因为所有实例共享同一个方法的引用。这意味着如果你在原型上添加或修改了方法,所有实例都会立即反映这些变化。

  3. 继承和扩展:原型链方法允许类的实例继承父类原型上的方法,同时也方便在子类原型上添加新的方法来扩展功能。

  4. 更易于维护:将方法和属性统一定义在原型对象上,使代码结构更清晰,易于维护和理解。

  5. 如下:

  6. function person(name){
        this.name=name;
    } 
    
    person.prototype.sayhello=function(){
        console.log("hello")
    }
    
    let p1=new person()
    let p2=new person()
    
    console.log(p1.sayhello==p2.sayhello)//返回true

    而采用构造函数添加的方法和变量是属于实例本身所以属于多次调用每次构建对象的时候单独创建的,所以返回的就是false了 如下:

  7. function person(name){
        this.name=name;
        this.sayhello=function(){
            console.log("hello")
        }          
    } 
    
    
    let p1=new person()
    let p2=new person()
    
    console.log(p1.sayhello==p2.sayhello)//返回false

    总的来说 原型链的方法属于类,构造函数的方法属于实例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值