`
djob2008
  • 浏览: 130383 次
  • 性别: 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原型链是JavaScript语言中的一个核心特性,它关乎对象之间的继承关系。在JavaScript中,一切皆为对象,而原型链则是实现对象间属性和方法共享的一种机制。理解原型链对于深入学习JavaScript至关重要。 ...

    【技术分享】从浅入深 Javascript 原型链与原型链污染 .pdf

    本文将深入探讨JavaScript原型链的工作原理及其可能导致的安全问题——原型链污染。 首先,JavaScript 中的对象继承并不像传统面向对象语言那样基于类,而是通过原型链机制。每个对象都有一个内部属性`[[Prototype]...

    深度探讨javascript函数的原型链和闭包

    `[[Prototype]]`是每个JavaScript原生对象内置的原型属性,但不能直接访问,只能在查找原型链时由JavaScript引擎使用。它是JavaScript实现继承的基础。而`prototype`是函数对象的属性,可以直接通过JavaScript访问。...

    强大的原型和原型链

    当试图访问一个对象上的属性或方法时,如果对象本身没有这个属性或方法,JavaScript 引擎会沿着原型链向上查找,直到找到该属性或方法为止。 #### 原型的使用方式 1. **原型使用方式 1**: - 首先定义一个构造...

    JavaScript你一定要搞懂的原型链

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

    JavaScript中的prototype(原型)属性研究

    JavaScript中的...总结,JavaScript中的prototype属性是实现面向对象编程的重要组成部分,它涉及到继承、方法共享以及原型链等核心概念。理解并熟练运用这些知识,能够帮助开发者构建更复杂、更高效的应用程序。

    JavaScript中的原型链prototype介绍

    JavaScript中的原型链(prototype chain)是实现对象继承和属性查找机制的关键部分。在这个概念中,每个对象都有一个内部属性`[[Prototype]]`,通常通过`__proto__`、`Object.getPrototypeOf()`或`o.constructor....

    我所理解的从原型到原型链.pdf

    在JavaScript中,理解原型(Prototype)与原型链(Prototype Chain)是至关重要的。这两个概念是语言的核心部分,对于深入理解对象的属性查找机制、继承等方面有着不可替代的作用。 #### 原型(Prototype) 在...

    js原型链详解

    ### JavaScript原型与原型链详解 JavaScript作为一门基于原型的语言,其原型和原型链的概念是理解和掌握JS继承机制的关键。接下来将详细阐述这些概念。 #### 普通对象与函数对象 在JavaScript中,一切皆为对象,...

    JavaScript_Prototype(源代码+中文手册).rar

    这个压缩包文件“JavaScript_Prototype(源代码+中文手册).rar”包含了关于JavaScript原型的源代码和中文手册,为学习和理解这一主题提供了丰富的资源。 JavaScript是一种动态类型的语言,其核心特性之一就是原型...

    Javascript原型链的原理详解

    JavaScript原型链是JavaScript实现继承和共享属性的一种机制。在JavaScript中,每个对象都有一个内部属性`[[Prototype]]`,通常可以通过`__proto__`(非标准,但常见于许多环境)或`Object.getPrototypeOf()`来访问...

    了解JavaScript中的prototype (实例)

    JavaScript中的`prototype`是理解面向对象编程的关键概念之一。它是一种机制,允许对象共享属性和方法,从而实现代码复用。...理解`prototype`以及相关的原型链、继承和对象创建方式,对于深入学习JavaScript至关重要。

    原型链全套图解.rar

    在JavaScript中,原型链是理解对象继承和属性查找机制的关键概念。它是一种基于原型(prototype)的继承方式,使得一个对象能够从另一个对象那里继承属性和方法。在本压缩包"原型链全套图解.rar"中,包含了全面的...

    JavaScript原型链示例分享

    JavaScript的原型链是理解JavaScript对象继承机制的关键。在JavaScript中,每个对象都有一个内部属性`[[Prototype]]`,通常通过`__proto__`或`Object.getPrototypeOf()...这就是JavaScript原型链的基本工作原理和示例。

    javascript prototype 原型链

    总结一下,JavaScript原型链的核心思想是对象可以通过原型链向上查找属性或方法,直到找到为止,或者查找到`null`(表示链的终点)。这种机制使得JavaScript具备了类似的类继承特性,但实际上是基于原型的继承。通过...

    JavaScript中的原型prototype完全解析

    原型链是一系列链接起来的对象,如果一个属性在当前对象中未找到,JavaScript引擎会沿着原型链向上查找,直到找到该属性或到达原型链的末端(通常指向Object.prototype)。 实例中的__proto__属性揭示了它是如何被...

    JavaScript — 原型链与作用域链1

    JavaScript是一种广泛用于网页和网络应用的脚本语言,它的核心特性包括原型链和作用域链。这两个概念是理解JavaScript中对象继承和变量访问的关键。 **作用域链** 1. **作用域生成**:每次JavaScript代码执行时,...

Global site tag (gtag.js) - Google Analytics