1. 所有对象都有原型对象。
2. 原型对象,就是其它语言中的类中的静态属性和静态方法,总是是静态-static就对了.原理是: 内存中只有一份.
内存中的图解:
先写个构造器:
function Person(name, age) { this.name = name; this.age = age; } var A = new Person('A', 18); var B = new Person('B', 28); var C = new Person('C', 38);
function Person(name, age) { this.name = name; this.age = age; this.location = '地球'; } var A = new Person('A', 18); var B = new Person('B', 28); var C = new Person('C', 38);
三个对象都有一个”地球”的内存空间. 这里你要动动大脑了, 三个人都有地球的内存,我们是不是可以这样呢?
原型对象,最重要的作用就是把常量和方法独立到自身里. 供给其它 “自己的对象” 使用. 最后如图:
4. 从代码上实现。
function Person(name, age) { this.name = name; this.age = age; } var A = new Person('A', 18); var B = new Person('B', 28); var C = new Person('C', 38); Person.prototype.location = '地球'; Person.prototype.killPerson = function() { console.log('kill!!!'); } A.location // 地球 A.killPerson() // kill man B.location // 地球
不过前提是,你的对象属性里面,没有定义location和killPerson.不然会把原对象的覆盖掉
在A.location的时候,首先,我们检查A对象本身,从图中我们知道,A有 name, age 和prototype指针属性. 并没有location,找不到以后,它会继续搜索原对象里面,看能否找到location属性,如果有,就会调用原对象的属性.
相关推荐
在JavaScript的世界里,原型对象(Prototype)是理解对象继承机制的关键。这个练习旨在帮助学习者深入理解原型链的概念,这是JavaScript实现面向对象编程的核心部分。原生JS,即不依赖于像jQuery这样的库,让我们...
深入理解javascript原型和闭包(01)——一切都是对象 深入理解javascript原型和闭包(02)——函数和对象的关系
之前对js中的原型链和原型对象有所了解,每当别人问我什么是原型链和原型对象时,我总是用很官方(其实自己不懂)的解释去描述。有一句话说的好:如果你不能把一个很复杂的东西用最简单的话语描述出来,那就说明你...
在Javascript中,如果我们有一个对象但是又不知道它的构造函数时,如何获取它的原型对象呢? 在Chrome中或是FireFox浏览器中,我们可以直接使用对象的__proto__属性获取它的原型对象。 代码如下: <!– lang: js ...
该代码为JavaScript中关于原型对象的描述
JavaScript原型和闭包是这门语言中两个比较难以理解且与其他面向对象语言区别较大的概念。理解这两个概念,不仅能让我们更深层次地理解JavaScript,而且有助于我们了解编程语言的设计思路,拓宽我们的视野。 首先,...
### JavaScript原型与原型链详解 JavaScript作为一门基于原型的语言,其原型和原型链的概念是理解和掌握JS继承机制的关键。接下来将详细阐述这些概念。 #### 普通对象与函数对象 在JavaScript中,一切皆为对象,...
### 理解Javascript原型继承原理 #### 一、引言 在JavaScript中,原型继承是一种非常核心且独特的机制,它使得对象能够继承其他对象的属性和方法。本文旨在深入探讨这一机制,并通过具体的示例代码帮助读者更好地...
JavaScript的基于原型的继承风格使用起来非常灵活、高效,但对于初学者,要准确理解原型对象及其继承机制还是比较困难。本文将对JavaScript原型继承的方式进行介绍,并结合实例进行分析。 基于类的继承 面向对象...
javascript Map原型,对象,实现javascript中的Map数据类型功能
本文将深入探讨JavaScript中的原型、原型对象以及原型链的概念,并通过具体示例帮助读者更好地理解和应用。 #### 原型与原型对象 在JavaScript中,每个函数都有一个特殊的属性`prototype`,这是一个指针,指向一个...
总结来说,理解JavaScript中的原型对象、this用法、原型继承和Caller/Callee对于编写高效、可维护的代码至关重要。这些概念构成了JavaScript面向对象编程的基础,帮助开发者实现对象间的关联和复用,以及创建复杂的...
JavaScript原型链是JavaScript语言中的一个核心特性,它关乎对象之间的继承关系。在JavaScript中,一切皆为对象,而原型链则是实现对象间属性和方法共享的一种机制。理解原型链对于深入学习JavaScript至关重要。 ...
在JavaScript中,原型对象是理解其面向对象特性的关键。原型对象为特定类型的所有实例提供共享的属性和方法,对JavaScript的继承机制至关重要。本文将通过实例来分析原型对象的基本原理、用法以及操作时的注意事项。...
在JavaScript中,原型、原型对象和原型链是理解面向对象编程的关键概念。下面将深入解析这三个概念,并通过实例展示它们的工作原理。 首先,**原型**是JavaScript中的一个核心概念,它允许对象之间共享属性和方法。...
JavaScript 构造函数、原型对象和实例之间的关系详解 在 JavaScript 中,构造函数、原型对象和实例之间存在着紧密的关系,这三个概念息息相关。下面我们将详细解释它们之间的关系。 构造函数 在 JavaScript 中,...
- 可以通过`Object.getPrototypeOf()`或`__proto__`访问原型对象,但`__proto__`在ES6及以后的版本中不推荐使用,推荐使用`Object.getPrototypeOf`。 6. 原型问题: - 每个实例都有自己的属性,但共享方法。这...
在`prototype.js`这个文件中,可能包含了一些关于原型对象的示例代码或扩展。通常,开发者会利用`prototype`属性来添加或修改构造函数的原型,以便为所有实例提供共享的方法。例如: ```javascript Person....