JS学习笔记之继承

在基于类的语言中,对象是类的示例,对象也可以从其他对象中继承。JS是一门基于原型的语言,这意味着对象可以从其他对象中继承。

1.伪类

伪类的本意是向面向对象靠拢。但是虽然我们有了行为像类的构造器函数,但是也存在诸多缺憾,如没有私有环境,所有的属性都是公开的,无法访问supper(父类)的方法。使用构造器会存在的另一个问题是,如果构造器函数前面没有加上new,this将会被绑定到全局对象上。

2.对象说明符


主要是为了解决构造器在接受一大串参数时,记住所有的参数顺序会非常困难。因此采用对象说明符,举例如下:

var myObject=maker{{
    first:f,
    last: l,
    state:s,
    city:c
}};

无对象说明符时的代码如下:

var myObject=maker{f,l,s,c};

此时多个参数可按任意顺序排列,如果构造器聪明的使用默认值,那么一些参数可以忽略掉,并且代码也更易于阅读。

3.原型

在一个纯粹的原型继承模型中,我们会摒弃类,转而专注于对象,从这个意义上讲,原型和基类具有类似的作用。基于原型的继承本质上就是对象继承对象,实现了一种差异化继承。JS中,一个作用域({}标示的范围)被确定后,一个内部作用域会继承它的外部作用域。

4.函数化

相对于伪类模式,可以得到更好的封装和信息隐藏,以及访问父类方法的能力.
如果一个对象的所有状态都是私有的,那么该对象就是一个防伪对象,其属性可以被替换或删除,但是完整性不会被破坏。
如果用函数化的样式创建一个对象,并且所有的方法都不使用this或that,该对象就是持久性的,本质上就是一个简单功能函数的集合

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值