面向对象的理解,对JS中原型链的理解,对JS中继承的理解

面向对象的理解

1、JS中的对象就是一个个的工具包,而函数就是工具

2、在使用对象时,我们只需要关心工具包需要实现什么功能,而不需要关心工具是怎么实现的

3、面向对象的特点:

    a.封装性

    b.继承

    c.多态

4、对象是一个抽象的概念,我们如果需要使用对象必须对它进行实例化

5、创建对象的方式:

    a.构造函数创建对象:自定义一个函数来定义产品的属性和方法,缺点是不同的实例可能有些方法是相同的,每次实例都会重新分配内存,造成内存浪费

    b.原型创建对象:利用函数中的prototype属性定义产品的属性和方法,缺点是每个实例都有自己的属性,不能共享

    c.混合创建对象:把不同实例的属性放在构造函数中,把相同的方法放在原型中,能有效解决上述缺点

   d.工厂模式创建对象:我们可以把实例看做一个具体产品,产品创建交给工厂,我们直接使用这个产品就可以了

   e.运用第三方的框架创建对象

6、面向对象的作用

  a.封装框架

  b.面向对象编程

  c.描述数据

对JS中原型链的理解

1、通过原型创建对象,其实创建的是两个对象

   --构造函数对象

   --原型对象

 2、当我们实例化的时候,该实例自动拷贝构造函数中的所有属性和方法,而对于原型对象,则不拷贝,而是通过原型链把原型中的方法和实例联系起来,这里就涉及到了属性搜索法则

3、如果实例需要某个属性或方法时,通过属性访问搜索法则的原理,首先遍历自己的属性,就是构造函数的属性,因为实例的属性本身就是通过构造函数拷贝过来的,如果找不到,就根据原型链依次遍历原型对象中的属性

 

对JS中继承的理解

编程世界的继承有两层含义:

    1、拥有父类的属性和方法

  • 一个对象继承了另一个对象,就拥有了另一个对象的所有属性和方法,就是前面提到的实例化某个对          象,通过构造函数和原型对象拥有了其中的属性和方法
  • 继承的本质:通过__proto__指针指向某个对象,系统能够自动链式访问所指向的对象的属性和方法

   2、拥有自己的属性和方法

    通过第三方框架实现把自己的属性方在一个对象的属性中,公共的放在其他地方

 

 

转载于:https://my.oschina.net/u/3876057/blog/1839488

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值