美文网首页
【面向对象的程序设计(6)】原型式继承

【面向对象的程序设计(6)】原型式继承

作者: Wonder233 | 来源:发表于2017-11-17 11:47 被阅读0次

基本思想:

借助原型可以基于已有的对象创建新对象,同时还不必创建自定义类型。

function object(o){
    function F(){}
    F.prototype = o;
    return new F();
}

在object()函数内部,先创建了一个临时性的构造函数,然后将传入的对象作为这个构造函数的原型,最后返回了这个临时类型的一个新实例。

var person ={
  name:"Wonder",
  colors:['blue','green','white']
};
var anoherPerson = Object(person);
anoherPerson.name = "Abby";
anoherPerson.colors.push('black');

var yetAnotherPerson = Object(person);
yetAnotherPerson.name = "Greg";
anoherPerson.colors.push('yellow');

alert(person.colors);  //blue,green,white,black,yellow

原型式继承必须有一个对象可以作为另一个对象的基础。

ECMAScript 5新增Object.create()方法规范化了原型式继承。

/* Object.create()方法(IE9+、Firefox 4+、Safari 5+、Opera 12+和Chrome)
 * param:
 *    param1——用作新对象原型的对象
 *    param2——(可选)为新对象定义额外属性的对象
 *            格式:每个属性通过自己的描述符定义。 
 */
var person ={
  name:"Wonder",
  colors:['blue','green','white']
};
var anoherPerson1 = Object.create(person);
anoherPerson1.name = "Abby";
anoherPerson1.colors.push('black');

var yetAnotherPerson = Object.create(person);
yetAnotherPerson.name = "Greg";
anoherPerson.colors.push('yellow');

alert(person.colors);  //blue,green,white,black,yellow

var anoherPerson2 = Object.create(person,{
    name: {
        value:"Bob"
    }
});
alert(anoherPerson2 .name);  //"Bob"

相关文章

  • 【面向对象的程序设计(6)】原型式继承

    基本思想: 借助原型可以基于已有的对象创建新对象,同时还不必创建自定义类型。 在object()函数内部,先创建了...

  • 面向对象(八)继承___ 02原型式继承

    title: 面向对象(八)继承___ 02原型式继承 # 文章页面上的显示名date: # 文章...

  • 编程语言基础概念1

    什么是面向对象? 面向对象:指在程序设计中采用封装、继承、多态等设计方法。 什么是面向过程? 面向过程:程序设计按...

  • 理解面向对象

    面向对象是一种软件开发的方法,同类的还有面向过程。面向对象指的是在程序设计中采用Java的封装、继承、多态、六大原...

  • 【Java】面向对象:继承、组合和多态

    一. 面向对象三大特性之继承 1. 继承的概念 继承(inheritance)机制:是面向对象程序设计使代码可以复...

  • 学习JavaScript设计模式——面向对象(三)

    面向对象(三) 继承 3. 原型式继承——洁净的继承者 借助原型prototype可以根据已有的对象创建一个新的对...

  • js的继承

    面向对象的继承方式有很多种,原型链继承、借用构造函数继承、组合继承、原型式继承、寄生式继承、寄生式组合继承、深拷贝...

  • JavaScript 面向对象编程

    对象的创建 继承 原型式继承: 原型式继承,其本质是执行对给定对象的浅复制。原型链:{currentObject}...

  • 面向对象语言基础

    面向对象语言的特性 面向对象的语言的特性:封装、继承、多态。 面向对象语言的设计原则 面向对象的语言在进行程序设计...

  • Javascript——面向对象程序设计和继承

    Javascript——面向对象程序设计和继承 面向对象设计模式 创建对象——单个对象 字符字变量 new 操作符...

网友评论

      本文标题:【面向对象的程序设计(6)】原型式继承

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