`

JavaScript 学习笔记 三 原型(prototype)

 
阅读更多
//原型(prototype),是 JavaScript 特有的一个概念,通过使用原型,JavaScript 可以
//建立其传统 OO 语言中的继承,从而体现对象的层次关系。JavaScript 本身是基于原型的,
//每个对象都有一个 prototype 的属性来,这个 prototype 本身也是一个对象,因此它本身
//也可以有自己的原型,这样就构成了一个链结构。
//访问一个属性的时候,解析器需要从下向上的遍历这个链结构,直到遇到该属性,则返回属
//性对应的值,或者遇到原型为 null 的对象(JavaScript 的基对象 Object 的构造器的默认
//prototype 有一个 null 原型),如果此对象仍没有该属性,则返回 undefined

function Base(name){
    this.name = name;
    this.getName = function (){
        return this.name;
    }
}

function Child(id){
    this.id = id;
    this.getId = function () {
        return this.id;
    }
//    this.getName = function (){ 
//        return this.id;
//    }
//由于遍历原型链的时候,是有下而上的,所以最先遇到的属性值最先返回,通过这种机制可
//以完成重载的机制
}

Child.prototype = new Base("base");

var cl = new Child("child");
alert(cl.getId());
alert(cl.getName());
//由于c1从原型链上"继承"到了getName方法,因此可以访
分享到:
评论

相关推荐

    javascript学习笔记.docx

    10) 每个类都有一个原型(prototype)对象,它具有一套属性和方法,用来共享一个类的方法和常量,还有一个constructor的属性引用构造函数。 11) JavaScript中面向对象的特性: a) 实例属性:在构造函数创建或初始化...

    javascript学习笔记(九)javascript中的原型(prototype)及原型链的继承方式

    而原型正是实现javascript继承的很重要的一种方法! 我们首先来看以下代码: 代码如下: function person(name, age) { this.name = name; this.age = age; } person.prototype.getInfo = function() { alert(...

    Javascript学习笔记7 原型链的原理

    我们可以把new的过程拆分成以下三步: <1> var p={}; 也就是说,初始化一个对象p。 <2> p.__proto__=Person.prototype; <3> Person.call(p);也就是说构造p,也可以称之为初始化p。 关键在于第二步,我们来证明一下:...

    Javascript 读书笔记索引贴

    Javascript学习笔记2 函数 Javascript学习笔记3 作用域 Javascript学习笔记4 Eval函数 Javascript学习笔记5 类和对象 Javascript学习笔记6 prototype的提出 Javascript学习笔记7 原型链的原理 二. 实战篇Javascript...

    Ruffy javascript 学习笔记

    1,javascript的原型模型:prototype 在实现面向对象,(像是定义一个类的时候)需要一个构造函数来定义对象的成员,而方法去依附在该构造函数的原型上. 2,javascript中,为了实现继承,必须将子类构造函数的...

    Javascript 学习笔记之 对象篇(二) : 原型对象

    Javascript 并没有类继承模型,而是使用原型对象 prototype 进行原型式继承。尽管人们经常将此看做是 Javascript 的一个缺点,然而事实上,原型式继承比传统的类继承模型要更加强大。举个例子,在原型式继承顶端构建...

    Javascript学习笔记之 对象篇(三) : hasOwnProperty

    // Poisoning Object.prototype Object.prototype.bar = 1; var foo = {goo: undefined}; foo.bar;...Javascript 中没有其他方法能判断一个属性是定义在对象本身还是继承自原型链。 hasOwnProperty 作为

    Javascript学习笔记-详解in运算符

    一、判断 语法 prop in objectName 如果objectName指向的对象中含有prop这个属性或者键值,in运算符会返回true。...//true 原型链 in运算符会在整个原型链上查询给定的prop属性 代码如下: Object.prototype.s

    Javascript学习笔记之函数篇(五) : 构造函数

    Javascript 中的构造函数与其他语言相比也是不同的。任何通过关键字 new 调用的函数都可以当做构造函数。 在构造函数体内,this 指向新创建的对象。如果构造函数体内没有显示的 return 表达式,那么我们就默认返回 ...

    player-prototypes:JavaScript原型简介

    大纲外卖: 使用prototype属性构建javascript对象的“蓝图” 通过理解,以其他面向对象的语言学习“类” 使用“继承”概念设计模块目标听众: 初学者学习javascript或具有另一种面向对象语言的经验的开发人员,学习...

    javascript学习笔记(十) js对象 继承

    1.原型链 //很少单独使用 代码如下: View Code //定义 SuperClass类,有一个属性property和一个方法getSuperValue function SuperClass() { this.property = true; } SuperClass.prototype.getSuperValue = function...

    JavaScript继承学习笔记【新手必看】

    JavaScript作为一个面向对象语言(JS是基于对象的),可以实现继承是必不可少的,但是由于本身并没有类的概念,所以不会像真正的面向对象编程语言通过类实现继承,但可以通过其他方法实现继承。实现继承的方法很多,...

    JavaScript学习笔记整理_简单实现枚举类型,扑克牌应用

    如下所示: ... //重写原型并将原型赋值给变量proto var proto = Enumeration.prototype = { constructor:Enumeration, toString:function(){return this.name;}, valueOf:function(){return this.

    javascript-learning-road:js学习笔记

    类笔记 类继承 利用super()来调用父类的构造函数。...构造函数原型prototype(原型对象) 1.构造函数通过原型分配的函数是所有对象所共享的。 2.每个一个构造函数都有一个原型属性,指向另一个对象。这个prototyp

    JavaScript零基础入门(精品课)【2020新版】

    13.原型prototype 14.内置对象 15.客户端存储Cookie、WebStorage 教学全程采用笔记+代码案例的形式讲解,每个知识点都有详细的讲解,通俗易懂!!! 全网500万学员的选择,好评如潮,专业更值得信赖...... 讲师...

    JavaScript 继承详解及示例代码

    有些知识当时实在看不懂的话,可以先暂且放下,留在以后再看也许就能看懂了...链接: [学习笔记] 小角度看JS原型链 从原文中小摘几句 构造函数通过 prototype 属性访问原型对象 实例对象通过 [[prototype]] 内部属性

    javascript继承机制实例详解

    初学javascript一般很难理解Javascript语言的继承机制它没有”子类”和”父类”的概念,也没有”类”(class)和”实例”(instance)的区分,全靠一种很奇特的”原型链”(prototype chain)模式,来实现继承。...

Global site tag (gtag.js) - Google Analytics