面向对象的理解,对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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
面向对象继承是一种重要的概念,它允许在现有类的基础上创建新的类,并从已有的类继承属性和方法继承通过建立父类和子类之间的关系,使得子类可以共享父类的特性,并且可以在不破坏原有类的情况下对其进行扩展或修改。 通过继承,子类可以继承父类的属性和方法,包括数据属性和函数方法。子类可以直接使用父类的属性和方法,也可以在需要的情况下进行重写或者添新的属性和方法。这种机制使得代码可以更好地组织和复用,同时也提高了代码的可维护性和可扩展性。 继承还可以实现多态性,即同一个方法在不同的子类有不同的实现。这样可以根据具体的对象类型来调用相应的方法,使得代码更灵活、可扩展。 继承的一些关键概念包括: 1. 父类(基类/超类):被继承的类,提供了共享的属性和方法。 2. 子类(派生类):从父类继承属性和方法的新类。 3. 继承关系:子类通过关键字 extends(Java、C#等)或者冒号(Python)来继承父类。 4. 单继承与多继承:单继承指的是一个子类只能继承一个父类,而多继承允许一个子类同时继承多个父类。 5. 方法重写(覆盖):子类可以重新定义父类方法,提供自己的实现,从而覆盖父类的方法。 6. super 关键字:在子类可以使用 super 关键字来调用父类方法或者构造函数。 总之,面向对象继承是一种强大的特性,它可以提高代码的复用性、可维护性和可扩展性,同时也能使代码更灵活和易于理解

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值