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 中的对象继承并不像传统面向对象语言那样基于类,而是通过原型链机制。每个对象都有一个内部属性`[[Prototype]...
`[[Prototype]]`是每个JavaScript原生对象内置的原型属性,但不能直接访问,只能在查找原型链时由JavaScript引擎使用。它是JavaScript实现继承的基础。而`prototype`是函数对象的属性,可以直接通过JavaScript访问。...
当试图访问一个对象上的属性或方法时,如果对象本身没有这个属性或方法,JavaScript 引擎会沿着原型链向上查找,直到找到该属性或方法为止。 #### 原型的使用方式 1. **原型使用方式 1**: - 首先定义一个构造...
当访问一个对象的属性或方法时,如果对象本身没有定义该属性或方法,JavaScript 就会沿着原型链向上查找,直到找到该属性或方法或者到达原型链的末尾(null)为止。 原型链图是用于表示 JavaScript 中对象之间原型...
JavaScript中的...总结,JavaScript中的prototype属性是实现面向对象编程的重要组成部分,它涉及到继承、方法共享以及原型链等核心概念。理解并熟练运用这些知识,能够帮助开发者构建更复杂、更高效的应用程序。
JavaScript中的原型链(prototype chain)是实现对象继承和属性查找机制的关键部分。在这个概念中,每个对象都有一个内部属性`[[Prototype]]`,通常通过`__proto__`、`Object.getPrototypeOf()`或`o.constructor....
在JavaScript中,理解原型(Prototype)与原型链(Prototype Chain)是至关重要的。这两个概念是语言的核心部分,对于深入理解对象的属性查找机制、继承等方面有着不可替代的作用。 #### 原型(Prototype) 在...
### JavaScript原型与原型链详解 JavaScript作为一门基于原型的语言,其原型和原型链的概念是理解和掌握JS继承机制的关键。接下来将详细阐述这些概念。 #### 普通对象与函数对象 在JavaScript中,一切皆为对象,...
这个压缩包文件“JavaScript_Prototype(源代码+中文手册).rar”包含了关于JavaScript原型的源代码和中文手册,为学习和理解这一主题提供了丰富的资源。 JavaScript是一种动态类型的语言,其核心特性之一就是原型...
JavaScript原型链是JavaScript实现继承和共享属性的一种机制。在JavaScript中,每个对象都有一个内部属性`[[Prototype]]`,通常可以通过`__proto__`(非标准,但常见于许多环境)或`Object.getPrototypeOf()`来访问...
JavaScript中的`prototype`是理解面向对象编程的关键概念之一。它是一种机制,允许对象共享属性和方法,从而实现代码复用。...理解`prototype`以及相关的原型链、继承和对象创建方式,对于深入学习JavaScript至关重要。
在JavaScript中,原型链是理解对象继承和属性查找机制的关键概念。它是一种基于原型(prototype)的继承方式,使得一个对象能够从另一个对象那里继承属性和方法。在本压缩包"原型链全套图解.rar"中,包含了全面的...
JavaScript的原型链是理解JavaScript对象继承机制的关键。在JavaScript中,每个对象都有一个内部属性`[[Prototype]]`,通常通过`__proto__`或`Object.getPrototypeOf()...这就是JavaScript原型链的基本工作原理和示例。
总结一下,JavaScript原型链的核心思想是对象可以通过原型链向上查找属性或方法,直到找到为止,或者查找到`null`(表示链的终点)。这种机制使得JavaScript具备了类似的类继承特性,但实际上是基于原型的继承。通过...
原型链是一系列链接起来的对象,如果一个属性在当前对象中未找到,JavaScript引擎会沿着原型链向上查找,直到找到该属性或到达原型链的末端(通常指向Object.prototype)。 实例中的__proto__属性揭示了它是如何被...
JavaScript是一种广泛用于网页和网络应用的脚本语言,它的核心特性包括原型链和作用域链。这两个概念是理解JavaScript中对象继承和变量访问的关键。 **作用域链** 1. **作用域生成**:每次JavaScript代码执行时,...