`
heicx_sudo
  • 浏览: 7003 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

javascript继承机制__proto__与prototype

 
阅读更多

  所有构造器(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的缩写。

 

1
2
分享到:
评论

相关推荐

    prototype_oop_javascript_ruby_prototype_

    标题 "prototype_oop_javascript_ruby_prototype_" 暗示了我们将探讨的是关于原型(Prototype)面向对象编程(Object-Oriented Programming, OOP)的概念,主要关注JavaScript和Ruby这两种语言之间的相似性和差异性...

    prototype与__proto__区别详细介绍

    在JavaScript中,`prototype`和`__proto__`都是与对象继承和原型链紧密相关的概念,但它们在用途和性质上有所不同。以下是这两者的主要区别和详细解释: 1. **prototype(原型)** - `prototype`是函数特有的属性...

    详解帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)

    JavaScript中的`prototype`、`__proto__`和`constructor`是理解JavaScript面向对象编程的关键概念。这篇文章通过图解的方式深入浅出地解析了这三个概念之间的关系。 首先,`__proto__`属性是对象独有的,它指向对象...

    javascript 中__proto__和prototype详解

    总结一下,__proto__属性与prototype属性是JavaScript原型继承中的两个关键点,它们共同支撑起JavaScript的原型链继承机制。通过__proto__属性,我们可以追踪到对象的原型链,而通过prototype属性,函数可以将其属性...

    简单解析JavaScript中的__proto__属性

    __proto__属性可以追溯到JavaScript的早期版本,那时候JavaScript的继承机制主要是通过原型链来实现的。原型链是一系列对象通过__proto__属性链接在一起的链条,这个链条的最顶端是Object.prototype。这个原型链可以...

    JavaScript中__proto__与prototype的关系深入理解

    在JavaScript中,`__proto__` 和 `prototype` 是两个重要的概念,它们分别涉及对象的内部原型链和构造函数的原型。这篇文章将深入探讨这两者之间的关系。 首先,`__proto__` 属性是一个对象的内部属性,它指向该...

    js prototype和__proto__的关系是什么

    在JavaScript中,prototype和__proto__是理解对象原型继承机制的关键知识点。下面将详细介绍这两者之间的关系以及它们在JavaScript对象继承中所扮演的角色。 首先,prototype属性是函数所独有的。在JavaScript中,...

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

    JavaScript是一种动态类型的语言,其核心特性之一就是原型(Prototype)机制。原型是JavaScript实现对象继承的基础,它允许一个对象可以继承另一个对象的属性和方法。在JavaScript中,每个对象都有一个特殊的内部...

    javascript关于继承解析_.docx

    JavaScript中的继承机制是面向对象编程的关键部分,它允许创建基于现有对象的新对象,同时保留原有的属性和方法。这里我们将深入探讨几种主要的继承方式:原型式继承、寄生式继承和寄生组合式继承。 ### 原型式继承...

    JavaScript高级_javascript_zip_

    2. **原型链(Prototype Chain)**:JavaScript中的对象继承是通过原型链实现的,每个对象都有一个内部属性`__proto__`,指向其构造函数的原型对象。理解原型链对于掌握继承机制至关重要。 3. **函数表达式与函数...

    详解JavaScript中基于原型prototype的继承特性_.docx

    JavaScript中的原型(prototype)机制是实现继承的一种核心方式。由于JavaScript是一种基于原型的面向对象语言,它不支持传统的类(class)概念,因此其继承机制显得与众不同。在JavaScript中,对象可以直接从另一个...

    浅谈JavaScript对象与继承_.docx

    总的来说,JavaScript的对象和继承机制是其灵活性和强大性的体现,但同时也因为其独特的设计导致了一些误解和陷阱。理解这些概念对于深入学习和使用JavaScript至关重要。在实际开发中,开发者应根据需求选择合适的...

    JavaScript的prototype

    JavaScript的`prototype`机制是其面向对象编程的基础,它允许对象间共享方法,实现继承。理解并熟练掌握`prototype`,对于编写高效、可维护的JavaScript代码至关重要。通过`prototype`,开发者可以构建复杂的应用...

    JS原型prototype和__proto__用法实例分析

    JavaScript中的原型...理解这些概念对于深入掌握JavaScript的面向对象编程至关重要,因为它们构成了JavaScript继承体系的基础。通过`__proto__`和`prototype`,我们可以创建复杂的数据结构和功能强大的类模拟系统。

    帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)

    JavaScript中的`prototype`、`__proto__`和`constructor`是理解JavaScript面向对象编程的关键概念。这篇文章将通过图解的方式帮助读者深入理解这三个属性的关系。 首先,`__proto__`属性,它存在于每个对象中,表示...

    跟我学习javascript的prototype,getPrototypeOf和__proto__

    C.prototype: 一般用来为一个类型建立它的原型继承对象。比如C.prototype = xxx,这样就会让使用new C()得到的对象的原型对象为xxx。当然使用obj.prototype也能够得到obj的原型对象。 getPropertyOf: Object....

    了解JavaScript中的prototype (实例)

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

Global site tag (gtag.js) - Google Analytics