美文网首页
OOP and prototype

OOP and prototype

作者: 来人啊都给朕退下吧 | 来源:发表于2017-08-16 16:39 被阅读28次

OOP 指什么?有哪些特性

  • Object-oriented programming的缩写,即面向对象程序设计,其中两个最重要的概念就是类和对象。类只是具备了某些功能和属性的抽象模型,类在实例化之后得到的实体就是对象。

  • 特性:

    1. 继承性:子类自动继承其父级类中的属性和方法,并可以添加新的属性和方法或者对部分属性和方法进行重写。继承增加了代码的可重用性。
    2. 多态性:子类继承了来自父级类中的属性和方法,并对其中部分方法进行重写。
    3. 封装性:将一个类的使用和实现分开,只保留部分接口和方法与外部联系。

如何通过构造函数的方式创建一个拥有属性和方法的对象?

function Person(name,age){
    this.name = name;
    this.age = age;
}

Person.prototype.sayName = function (){
    console.log(this.name);
}


var p1 = new Person();  


new一个对象发生了什么

  1. 创建了一个空对象 作为this
  2. this.__proto__指向构造函数的prototype
  3. 运行构造函数
  4. 返回this(若构造函数没有return)

prototype 是什么?有什么特性

  • 我们创建的每个函数都有一个prototype属性,这个属性是一个指针,指向一个对象,而这个对象的用途是包含所有实例共享的属性和方法。
  • prototype就是通过调用构造函数而创建的那个对象实例的原型对象。通常我们可以将实例对象的公共属性和方法放在prototype对象中。好处是节省空间,当有很多对象时,不用每次有一个对象就去重复创建一份方法。

特性:

  1. 每个函数都有一个prototype属性,指向一个对象,叫做原型对象
  2. 所有对象都有__proto__
  3. 对象.__proto__=== 构造函数.prototype
  4. 访问一个对象的属性时,如果对象有这个属性,就获取到了,如果没有这个属性,则从__proto__里面去找,如果还是没有找到,则从原型对象prototype里的proto中去寻找。

画出如下代码的原型图

function People (name){
  this.name = name;
  this.sayName = function(){
    console.log('my name is:' + this.name);
  }
}

People.prototype.walk = function(){
  console.log(this.name + ' is walking');  
}

var p1 = new People('饥人谷');
var p2 = new People('前端');




代码

相关文章

  • OOP and prototype

    OOP 指什么?有哪些特性 Object-oriented programming的缩写,即面向对象程序设计,其中...

  • JavaScript prototype 对象

    转载地址:http://javascript.ruanyifeng.com/oop/prototype.html#...

  • 学习JS笔记(第八章-OOP上)

    OOP概念## OOP特点:抽象、封装、继承、多态 prototype属性与原型## 创建一个函数Foo时,Foo...

  • ES6里玩接口

    OOP里,class和interface是很有用的两个东西,废话。在JS/ES中,class被prototype取...

  • js原型链

    oop两种实现方式1.class;2原型 ----原型--- prototype為函數原型對象 除(Functio...

  • 对象_原型

    prototype是一个公共容器,节省空间问题1: OOP 指什么?有哪些特性面向对象编程,Object Orie...

  • OOP

    oop_simplestclass.py oop_methond.py oop_init.py oop_objva...

  • 关于oop和aop

    oop oop(Object Oriented Programming)面向对象编程, oop的设计特征:封装, ...

  • 面向对象编程

    OOP 指什么?有哪些特性 OOP:OOP(Object-oriented programming, 面向对象编程...

  • 关于对象-原型

    1.OOP 指什么?有哪些特性 OOP:Object-oriented programming,缩写OOP,即面向...

网友评论

      本文标题:OOP and prototype

      本文链接:https://www.haomeiwen.com/subject/xwnirxtx.html