`
djob2008
  • 浏览: 127212 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JavaScript 原型链prototype

阅读更多
window.onload = function(){   
 2        /**//*  
 3           每个对象实例都有个属性成员用于指向到它的instanceof 对象(暂称为父对象)的原型(prototype)  
 4           我们把这种层层指向父原型的关系称为[原型链 prototype chian]  
 5           原型也具有父原型,因为它往往也是一个对象实例,除非我们人为地去改变它  
 6          
 7          
 8           在JavaScript中,"一切都是对象,函数是第一型。"  
 9           Function和Object都是函数的实例。  
10           Function的父原型指向到Function的原型,Function.prototype的父原型是Object的原型  
11           Object的父原型也指向到Function的原型,Object.prototype 是所有父原型的顶层  
12          
13           在spiderMonkey引擎中,父原型可以通过 __proto__ 进行访问  
14          
15          
16          
17           大家在看的时候最后能反复的读几篇,能加深理解,尤其是原型,父原型,还有原型链的意思.  
18             
19        *  prototype  访问的是原型  
20        *  __proto__  访问的父原型  
21        *  instanceof 原型链的父类  
22             
23        */   
24        Function.prototype.hi = function(){alert('hi Function');}   
25        Object.prototype.hi = function(){alert('hi Object');}   
26           
27        var a = function(){   
28            this.txt = 'a';   
29        };   
30        a.prototype = {   
31            say:function(){alert('a');}   
32        };   
33           
34        alert(a instanceof Function);//a是Function的实例;   
35        alert(a.__proto__ === Function.prototype);   
36        //a的父原型指向到Function的原型;   
37        //a.__proto__父原型 Function   
38        //Function.prototype 父原型 Function   
39           
40        alert(Function instanceof Object);   
41        //Function是Object的实例;   
42           
43        alert(Function.__proto__ === Function.prototype);   
44        //Function的父原型指向到Function的原型;   
45           
46        alert(Function.prototype.__proto__ === Object.prototype);   
47        //Function的原型的父原型指向到Object的原型   
48           
49        alert(Object.__proto__ === Function.prototype);   
50        //Object的父原型指向到Function的原型;   
51        alert(Object.prototype.__proto__);   
52        //Object的原型是所有父原型的顶端,它不再具有父原型,所以结果为 null;   
53           
54           
55        alert(a.prototype instanceof Object);   
56        //a的原型也是一个对象   
57        alert(a.prototype.__proto__ === Object.prototype);   
58        //a的原型的父原型指向Object的原型   
59    };  
 
分享到:
评论

相关推荐

    JavaScript你一定要搞懂的原型链

    当访问一个对象的属性或方法时,如果对象本身没有定义该属性或方法,JavaScript 就会沿着原型链向上查找,直到找到该属性或方法或者到达原型链的末尾(null)为止。 原型链图是用于表示 JavaScript 中对象之间原型...

    JavaScript中的原型链prototype介绍

    主要介绍了JavaScript中的原型链prototype介绍,本文讲解了访问原型对象的3种方法,判断两个对象间是否存在原型链关系的方法等,需要的朋友可以参考下

    深入浅出理解javaScript原型链

    对于javascript原型链,以前都觉得是个很深的东西,一直没有理解很明白,今天看了一些介绍后,发现这张图,表示再没有什么语言能比这张图说得清楚了。 看了这张图后突然对javascript有了质的理解。 javascript的...

    一篇文章让你搞懂JavaScript 原型和原型链

    原型和原型链作为深入学习JavaScript最重要的概念之一,如果掌握它了后,弄清楚例如:JavaScript的继承,new关键字的原来、封装及优化等概念将变得不在话下,那么下面我们开始关于原型和原型链的介绍。 什么是原型?...

    JavaScript原型链示例分享

    –/* 每个对象实例都有个属性成员用于指向到它的instanceof 对象(暂称为父对象)的原型(prototype) 我们把这种层层指向父原型的关系称为[原型链 prototype chian] 原型也具有父原型,因为它往往也是一个对象实例,...

    【JavaScript源代码】五句话帮你轻松搞定js原型链.docx

     原型链是一种机制,指的是JavaScript每个对象包括原型对象都有一个内置的[[proto]]属性指向创建它的函数对象的原型对象,即prototype属性。 作用:原型链的存在,主要是为了实现对象的继承。 一、 记住以下5句话...

    [js高手之路]图解javascript的原型(prototype)对象,原型链实例

    下面小编就为大家带来一篇[js高手之路]图解javascript的原型(prototype)对象,原型链实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    JavaScript使用原型和原型链实现对象继承的方法详解

    本文实例讲述了JavaScript使用原型和原型链实现对象继承的方法。分享给大家供大家参考,具体如下: 实际上JavaScript并不是一门面向对象的语言,不过JavaScript基于原型链的继承方式、函数式语法,使得编程相当灵活...

    跟我学习javascript的prototype原型和原型链

    用过JavaScript的同学们肯定都对prototype如雷贯耳,但是这究竟是个什么东西却让初学者莫衷一是,只知道函数都会有一个prototype属性,可以为其添加函数供实例访问,其它的就不清楚了,最近看了一些 JavaScript高级...

    javascript prototype 原型链

    既然prototype是对象的“原型”,那么由该函数构造出来的对象应该都会具有这个“原型”的特性。事实上,在构造函数的prototype上定义的所有属性和方法,都是可以通过其构造的对象直接访问和调用的。也可以这么说,...

    Javascript原型链及instanceof原理详解

    instanceof:用来判断实例是否是属于某个对象,这个判断依据是什么呢?...实例对象属性查找顺序是:实例对象内部—->构造函数原型链—->实例对象父对象的原型链。 //继承机制 function A(){ } A.prototype.

    JavaScript中的原型prototype完全解析

    主要介绍了JavaScript中的原型prototype完全解析,prototype可是js界"一切皆对象"论调的重要支撑,讲解了__proto__属性和原型链等干货,需要的朋友可以参考下

    js 原型对象和原型链理解

    最近正在读《Javascript高级程序设计》,书中对原型对象和原型链的描述让我受益匪浅,下面仅用一个对比性的例子来说明。 我们经常会这么写 function Person () { this.name = 'John'; } var person = new ...

    JavaScript继承基础讲解(原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承)

     JavaScript中实现继承最简单的方式就是使用原型链,将子类型的原型指向父类型的实例即可,即“子类型.prototype = new 父类型();”,实现方法如下: // 为父类型创建构造函数 function SuperType() { thi

    Javascript原型链和原型的一个误区

    之前我对Javascript的原型链中, 原型继承与标识符查找有些迷惑, 如, 如下的代码: 代码如下: function Foo() {}; var foo = new Foo(); Foo.prototype.label = “laruence”; alert(foo.label); //output: ...

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

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

Global site tag (gtag.js) - Google Analytics