js继承属性

var a = {x:1};

var c = inherit(a);

c.x    //1

c.x = 3;c.y = 2;  //赋值

a.x    //1,

//继承后,如果改变继承后的值,不会改变原值。

如果用赋值方式

var c = a;

当对c进行操作时,会改变a中的原值,(猜想,类似于java中的引用类型,当进行赋值时,会把a的地址赋值给c,当c进行操作时,实际改的是a地址中的值,而继承inherit会重新创建一个地址不同的c存储空间,原有的值也会传给c,对c的操作不会影响到a)

转载于:https://my.oschina.net/nisir/blog/1377163

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 除了父类,还可以通过其他方式来继承属性,例如: 1. 接口继承:一个接口可以继承另一个接口的属性和方法。 2. 混入继承:将多个类的属性和方法合并到一个类,可以使用混入继承来实现。 3. 委托继承:一个类可以将其属性和方法的实现委托给另一个类来实现。 4. 原型继承JavaScript的对象可以通过原型继承继承其他对象的属性和方法。 5. 类继承:在一些编程语言,可以使用类继承继承其他类的属性和方法。 ### 回答2: 除了父类,可以通过多种方式继承属性。 首先,可以通过接口继承属性。接口是一种定义了一组方法和属性的抽象类型,它可以被类实现。当一个类实现了某个接口时,该类就能够继承接口定义的属性。通过实现接口,类可以共享接口定义的属性,从而拥有相同的属性。 其次,可以通过混入(mixin)继承属性。混入是一种将类的成员和属性合并到其他类的方式,使得该类能够继承其他类的属性。通过将混入类的属性和方法添加到目标类,就可以实现属性继承。 此外,还可以通过组合继承属性。组合是指在一个类包含另一个类的实例作为属性。通过将其他类的实例作为属性添加到目标类,目标类就能够继承其他类的属性。通过组合,一个类可以通过包含其他类的实例来继承多个类的属性。 另外,可以使用装饰器模式来继承属性。装饰器模式是一种动态地将责任附加到对象上的方式。通过定义装饰器,可以在不改变原有类的情况下,通过附加装饰器来扩展类的功能和属性。 综上所述,除了父类之外,还可以通过接口、混入、组合和装饰器等方式来继承属性。这些方式可以灵活地实现属性继承,使得类可以拥有多个不同来源的属性。 ### 回答3: 除了父类,继承属性的另一种方式是使用组合。组合是将一个类的实例作为另一个类的成员对象,以此实现属性继承。 在组合,一个类(称为容器类)将另一个类(称为成员类)的实例作为自己的属性,通过访问这个属性来获取成员类的属性和方法。这样容器类实际上也拥有了成员类的属性,就像继承一样。 例如,我们有一个名为Car的容器类和一个名为Engine的成员类。Car类的实例可以与Engine类的实例关联,以便Car类可以获取Engine类的属性和方法。这样,Car类就可以通过Engine类实现引擎相关的功能,而不需要重新实现相同的代码。 使用组合的好处是可以减少代码的重复和冗余。通过将相关的属性和方法封装在成员类,容器类只需通过访问成员对象即可获得所需的功能,不再需要重复编写相同的代码。 需要注意的是,与继承不同,组合并不直接继承成员类的所有属性和方法。容器类只能通过成员对象进行间接访问。这样可以避免容器类的命名空间被成员类的属性和方法污染,同时也增加了代码的灵活性和可维护性。 综上所述,除了通过继承父类,我们还可以通过组合的方式来继承属性。组合将一个类的实例作为另一个类的成员对象,并提供访问这个成员对象的接口,以实现属性继承。这种方式可以减少代码重复和冗余,提高代码的可维护性和灵活性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值