JavaScript基于原型的继承

在一个纯粹的原型模式中,我们会摒弃类,转而专注于对象,基于原型的继承相比基于类的继承的概念上更为简单

if( typeof Object.beget  !== ‘function‘)
{
     Object.beget = function(o) {
               var F = function() {};
               F.prototype = o;
               return new F();
      }
}
var myMammal = {

      name : ‘Herb the Mammal‘,
      get_name : function() {
                return this.name;
         },
        says : function() {
                 return this.saying || ‘ ‘;
           }
};
var myCat = Object.beget(myMammal);
myCat.name = ‘Henrietta‘;
myCat.saying = ‘meow‘;
myCat.get_name = function() {
  return this.says + ‘  ‘+ this.name + ‘ ‘+this.says;
};

  

时间: 2024-08-26 19:53:08

JavaScript基于原型的继承的相关文章

深刻理解JavaScript基于原型的面向对象

主题一.原型 一.基于原型的语言的特点 1 只有对象,没有类;对象继承对象,而不是类继承类. 2  "原型对象"是基于原型语言的核心概念.原型对象是新对象的模板,它将自身的属性共享给新对象.一个对象不但可以享有自己创建时和运行时定义的属性,而且可以享有原型对象的属性. 3 除了语言原生的顶级对象,每一个对象都有自己的原型对象,所有对象构成一个树状的层级系统.root节点的顶层对象是一个语言原生的对象,其他所有对象都直接或间接继承它的属性. 显然,基于原型的语言比基于类的语言简单得多,我

深入浅出JavaScript之原型链&继承

Javascript语言的继承机制,它没有"子类"和"父类"的概念,也没有"类"(class)和"实例"(instance)的区分,全靠一种很奇特的"原型链"(prototype chain)模式,来实现继承. 这部分知识也是JavaScript里的核心重点之一,同时也是一个难点.我把学习笔记整理了一下,方便大家学习,同时自己也加深印象.这部分代码的细节很多,需要反复推敲.那我们就开始吧. 小试身手 原型链

轻松学习JavaScript十三:JavaScript基于面向对象之继承(包含面向对象继承机制)

一面相对象继承机制 今天算是什么都没干,尽在了解面向对象三大特性之一的继承了,过去的学习的C++和C#都是正统的面向对象语 言,学习的时候也没有怎么深入了解过,只是简单的学习最基础的继承.下午在看继承机制的时候,看到一个很经典 的继承机制实例.这个实例使用UML很好的解释了继承机制. 说明继承机制最简单的方式是,利用一个经典的例子就是几何形状.实际上,几何形状只有两种,即椭圆形(是圆 形的)和多边形(具有一定数量的边).圆是椭圆的一种,它只有一个焦点.三角形.矩形和五边形都是多边形的一种, 具有

javascript: 基于原型的面向对象编程

Douglas Crockford指出javascript是世界上最被误解的编程语言.由于javascript缺少常见的面向对象概念,许多程序猿认为javascript不是一个合适的语言.我在做第一个javascript项目时候也发现不能将代码放在一个类中.其实大部分程序猿不知道javascript可以面向对象. 浏览器大战时代,Netscape的执行官招来了一个叫Brendan Eich的聪明人,发明了livescript(就是现在的javascript)语言,用来运行在浏览器端.它不像c++

JavaScript的原型与继承

首先,什么是原型: JavaScript里所有函数,变量方法都是对象,而对象对应的就是原型(prototype). 所以以此来看,JS里任何的对象都有一个原型对象,而默认的原型对象就处在原型链的最顶端. 现在说到了一个新的概念,什么是原型链? 在JavaScript中,一共有两种类型的值,原始值和对象值.每个对象都有一个内部属性[[prototype]],我们通常称之为原型.原型的值可以是一个对象,也可以是null.如果它的值是一个对象,则这个对象也一定有自己的原型.这样就形成了一条线性的链,我

javascript基于原型的面向对象的理论基础

面向对象,即按照人类的思维方式来编写程序,这是人类与生俱来的思维方式而不是新兴的一种方法. 1.对象(object):在内存中真实存在的: 2.对象即看待事物时就是一个一个物体构成而是物体就有属性和方法. 3.类:具有相同属性和方法的一组对象的抽象:(不是真实存在的)在设计时抽象出来的: ps:对象是类的实列,类是对象的抽象 ps:javascript是一个基于原形的面向对象的语言,即每个对象有一个原形,对象从原形种继承属性和方法.当访问对象的属性或调用对象的方法时,解析器首先检查对象是否有一个

JavaScript中原型与继承(简单例子)

利用原型prototype创建自定义对象Person: function Person(name,sex){ this.name = name; this.sex = sex; } Person.prototype = { getName:function(){return this.name}, getSex:function(){return this.sex} } var liu = new Person("lcy","female"); //创建一个空白对象

JS基于原型的继承

function Person(name , age){ this.name = name; this.age = age;}Person.prototype.hi = function(){ console.log("hi my neame is "+this.name+" , I'm "+ this.age+" years old!");}Person.prototype.LEG_NUM = 2;Person.prototype.ARAMS_

JavaScript的原型继承

JavaScript是一门面向对象的语言.在JavaScript中有一句很经典的话,万物皆对象.既然是面向对象的,那就有面向对象的三大特征:封装.继承.多态.这里讲的是JavaScript的继承,其他两个容后再讲. JavaScript的继承和C++的继承不大一样,C++的继承是基于类的,而JavaScript的继承是基于原型的. 现在问题来了. 原型是什么? 原型我们可以参照C++里的类,同样的保存了对象的属性和方法.例如我们写一个简单的对象 function Animal(name) { t