所有构造器(Function类)/函数都具有prototype属性,每个原型对象都会对应相应的__proto__,
普通字面量对象不包含prototype属性,但包含__proto__属性。
__proto__属性始终指向原型对象的prototype,如下:
function Person(name, age){ this.name = name; this.age = age; } Person.prototype.getName = function(){ return this.name; } Person.prototype.setName = function(name){ this.name = name; } var Man = {}; Man.__proto__ = new Person("Jobs", 35); console.log(Man.getName()); var Female = function(){}; Female.prototype = new Person("Bill", 45); var female = new Female(); console.log(female.getName()); var Dog = {}; Dog.__proto__.getName = function(){ return "Docke"; } console.log(Dog.getName());
总结补充:
若使用prototype属性 -> “类名.prototype”
若使用__proto__属性 -> “实例.__proto__”
它们两个其实是同一个东西。
通过实例得到类名的代码是“实例.counstructor”,即“实例.counstructor===类名”
因为 实例.__proto__===类名.prototype
而且 实例.counstructor===类名
所以 实例.__proto__===实例.counstructor.prototype
所以 __proto__是counstructor.prototype的缩写。
相关推荐
标题 "prototype_oop_javascript_ruby_prototype_" 暗示了我们将探讨的是关于原型(Prototype)面向对象编程(Object-Oriented Programming, OOP)的概念,主要关注JavaScript和Ruby这两种语言之间的相似性和差异性...
在JavaScript中,`prototype`和`__proto__`都是与对象继承和原型链紧密相关的概念,但它们在用途和性质上有所不同。以下是这两者的主要区别和详细解释: 1. **prototype(原型)** - `prototype`是函数特有的属性...
JavaScript中的`prototype`、`__proto__`和`constructor`是理解JavaScript面向对象编程的关键概念。这篇文章通过图解的方式深入浅出地解析了这三个概念之间的关系。 首先,`__proto__`属性是对象独有的,它指向对象...
总结一下,__proto__属性与prototype属性是JavaScript原型继承中的两个关键点,它们共同支撑起JavaScript的原型链继承机制。通过__proto__属性,我们可以追踪到对象的原型链,而通过prototype属性,函数可以将其属性...
__proto__属性可以追溯到JavaScript的早期版本,那时候JavaScript的继承机制主要是通过原型链来实现的。原型链是一系列对象通过__proto__属性链接在一起的链条,这个链条的最顶端是Object.prototype。这个原型链可以...
在JavaScript中,`__proto__` 和 `prototype` 是两个重要的概念,它们分别涉及对象的内部原型链和构造函数的原型。这篇文章将深入探讨这两者之间的关系。 首先,`__proto__` 属性是一个对象的内部属性,它指向该...
在JavaScript中,prototype和__proto__是理解对象原型继承机制的关键知识点。下面将详细介绍这两者之间的关系以及它们在JavaScript对象继承中所扮演的角色。 首先,prototype属性是函数所独有的。在JavaScript中,...
JavaScript是一种动态类型的语言,其核心特性之一就是原型(Prototype)机制。原型是JavaScript实现对象继承的基础,它允许一个对象可以继承另一个对象的属性和方法。在JavaScript中,每个对象都有一个特殊的内部...
JavaScript中的继承机制是面向对象编程的关键部分,它允许创建基于现有对象的新对象,同时保留原有的属性和方法。这里我们将深入探讨几种主要的继承方式:原型式继承、寄生式继承和寄生组合式继承。 ### 原型式继承...
2. **原型链(Prototype Chain)**:JavaScript中的对象继承是通过原型链实现的,每个对象都有一个内部属性`__proto__`,指向其构造函数的原型对象。理解原型链对于掌握继承机制至关重要。 3. **函数表达式与函数...
JavaScript中的原型(prototype)机制是实现继承的一种核心方式。由于JavaScript是一种基于原型的面向对象语言,它不支持传统的类(class)概念,因此其继承机制显得与众不同。在JavaScript中,对象可以直接从另一个...
总的来说,JavaScript的对象和继承机制是其灵活性和强大性的体现,但同时也因为其独特的设计导致了一些误解和陷阱。理解这些概念对于深入学习和使用JavaScript至关重要。在实际开发中,开发者应根据需求选择合适的...
JavaScript的`prototype`机制是其面向对象编程的基础,它允许对象间共享方法,实现继承。理解并熟练掌握`prototype`,对于编写高效、可维护的JavaScript代码至关重要。通过`prototype`,开发者可以构建复杂的应用...
JavaScript中的原型...理解这些概念对于深入掌握JavaScript的面向对象编程至关重要,因为它们构成了JavaScript继承体系的基础。通过`__proto__`和`prototype`,我们可以创建复杂的数据结构和功能强大的类模拟系统。
JavaScript中的`prototype`、`__proto__`和`constructor`是理解JavaScript面向对象编程的关键概念。这篇文章将通过图解的方式帮助读者深入理解这三个属性的关系。 首先,`__proto__`属性,它存在于每个对象中,表示...
C.prototype: 一般用来为一个类型建立它的原型继承对象。比如C.prototype = xxx,这样就会让使用new C()得到的对象的原型对象为xxx。当然使用obj.prototype也能够得到obj的原型对象。 getPropertyOf: Object....
JavaScript中的`prototype`是理解面向对象编程的关键概念之一。它是一种机制,允许对象共享属性和方法,从而实现代码复用。...理解`prototype`以及相关的原型链、继承和对象创建方式,对于深入学习JavaScript至关重要。