-
【学习笔记】JavaScript中,构造函数、原型对象和实例的关系
2015-09-13 22:33:20原型对象:Name.prototype的各种属性和方法 实例:var a = new Name; 1.每创建一个构造函数都会默认创建了该函数的原型对象,原型对象中的默认属性constructor指向该构造函数Name。Name.prototype以字面量对象形式...构造函数:function Name(){}
原型对象:Name.prototype的各种属性和方法
实例:var a = new Name;
1.每创建一个构造函数(Name首字母大写,区分一般定义函数)都会默认创建了该函数的原型对象,原型对象中的默认属性constructor指向该构造函数Name。当Name.prototype以字面量对象形式表示时,constructor不再指向构造函数Name,而是Object。
2.当创建一个实例后,实例中存在指向现有原型对象的指针(不指向构造函数),如果现有原型对象被修改,则修改之前的实例指针仅能指向之前的原型对象,而在原型对象修改之后定义的实例则能获取所有的原型对象的属性和方法(最初原型+修改后的原型)。
<pre name="code" class="javascript">function Person(){} var friend = new Person; Person.prototype = { constructor: Person, name: "Todd"; age: 10;
getName = function() {
return this.name
}
} var family = new Person; alert (friend.name); //errer alert (family.name); //Todd
定义friend实例时,原型对象为空,所以浏览器没弹出警告框。定义family实例时,原型对象中已经有属性了,所以可以读取属性和方法。
-
类和对象、实例的关系理解
2017-11-15 15:31:00类可以理解为一种类型,对象是类中的一种实例。用类创建对象的过程叫做实例化。所以实例和类基本就是同一个概念。 最常见的举例是: 类Class:鸟 类的方法(函数):(鸟)会飞 类的属性(变量):爪子,翅膀 ...类可以理解为一种类型,对象是类中的一种实例。用类创建对象的过程叫做实例化。所以实例和类基本就是同一个概念。 最常见的举例是: 类Class:鸟 类的方法(函数):(鸟)会飞 类的属性(变量):爪子,翅膀 实例: 对象:麻雀,是(类Class)鸟 的一种 对象方法(函数):麻雀会飞 对象的变量:麻雀有2个爪子,一对翅膀
本文转自Tenderrain 51CTO博客,原文链接:http://blog.51cto.com/tenderrain/1588475,如需转载请自行联系原作者 -
构造函数、原型对象和实例对象的关系
2018-11-05 21:36:59JavaScript 规定,每一个构造函数都有...这也就意味着,我们可以把所有对象实例需要共享的属性和方法直接定义在 prototype 对象上。 function Person (name, age) { this.name = name; this.age = age; } con...JavaScript 规定,每一个构造函数都有一个
prototype
属性,指向另一个对象。这个对象的所有属性和方法,都会被构造函数的所拥有。这也就意味着,我们可以把所有对象实例需要共享的属性和方法直接定义在
prototype
对象上。function Person (name, age) { this.name = name; this.age = age; } console.log(Person.prototype); Person.prototype.type = 'human'; Person.prototype.sayName = function () { console.log(this.name); } var p1 = new Person(...); var p2 = new Person(...); console.log(p1.sayName === p2.sayName); // => true
这时所有实例的
type
属性和sayName()
方法,其实都是同一个内存地址,指向prototype
对象,因此就提高了运行效率。构造函数、实例、原型三者之间的关系
任何函数都具有一个
prototype
属性,该属性是一个对象。function F () {} console.log(F.prototype) // => object
构造函数的
prototype
对象默认都有一个constructor
属性,指向prototype
对象所在函数。console.log(F.prototype.constructor === F) // => true
通过构造函数得到的实例对象内部会包含一个指向构造函数的
prototype
对象的指针__proto__
。var instance = new F() console.log(instance.__proto__ === F.prototype) // => true
ps:__proto__
是非标准属性。实例对象可以直接访问原型对象成员。
instance.sayHi() // => hi!
总结:
-
任何函数都具有一个
prototype
属性,该属性是一个对象 -
构造函数的
prototype
对象默认都有一个constructor
属性,指向prototype
对象所在函数 -
通过构造函数得到的实例对象内部会包含一个指向构造函数的
prototype
对象的指针__proto__
-
所有实例都直接或间接继承了原型对象的成员
-
-
Java中对象与实例的关系
2020-04-01 13:51:48通俗地说,实例表示的是对象和类的关系 比如: Person b=new Person(); new Person()新建了一个Person对象,而b则是一个指向Person对象的引用,这个Person对象就是Person类的一个实例。 此时,可以认为实例和....在《Thinking in Java》一书里提到:“每个对象都是某个类(class)的一个实例,这里类就是类型的意思”。
通俗地说,实例表示的是对象和类的关系
比如:
Person b=new Person();
new Person()新建了一个Person对象,而b则是一个指向Person对象的引用,这个Person对象就是Person类的一个实例。
此时,可以认为实例和对象是一样的概念。
Person b=new Person("a");
new Person();是一个对象,放在堆(heap)空间。
a属于new Person()里面的是一个实例(放在常量池中)。
b属于一个引用,放在栈(stack)空间,要操作对象必须通过引用间接操作。
这个地址是指向new Person()这个对象的。
栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中
堆:存放用new 产生的数据
如果是出现多态的话,
//Child extends Person Person person = new Child();
可以看出new Child()这个实例化过程显然并没有将Child类的所有函数实例化,因为person是无法调用Child类独有的方法的。
所以只是部分实例化,这也表现了实例和对象之间的区别。
-
构造函数和实例对象和原型对象之间的关系
2020-06-19 22:51:51初步理解构造函数,实例对象,原型对象之间的关系; 1)构造函数可以实例化对象,先有构造函数,再有实例对象; 2)构造函数的prototype属性 指向的就是构造函数的原型对象(prototype); 3)构造函数的原型对象... -
一分钟理解构造函数、原型对象prototype和实例对象的关系
2020-09-23 21:09:31三者的关系如下图所示: ①构造函数Student的prototype属性指向了原型对象prototype,原型对象prototype的constructor属性又可以指向构造函数Student ②实例对象stu1的属性__proto__指向了原型对象prototype,实例... -
实例对象和构造函数之间的关系
2019-10-28 15:05:04实例对象和构造函数之间的关系 实例对象是通过构造函数来创建的—创建的过程叫实例化. 如何判断对象是不是这个数据类型? 1) 通过构造器的方式 实例对象.构造器==构造函数名字 //自定义构造函数 function Person... -
python类与实例化对象的关系_python的类和实例化对象
2020-12-28 20:56:45一切皆对象,类也是对象,类来自于元类type...类有两个属性,数据属性和函数属性,下面是一个创建类和实例化对象的例子classanimal:'This is class for animal' #类的说明type='animal'def __init__(self,name,sex,l... -
自学JavaScript-62(构造函数和实例对象和原型对象之间的关系)
2019-07-24 15:47:20构造函数和实例对象和原型对象之间的关系 /* * * 总结 * * 构造函数可以实例化对象 * 构造函数中有一个属性叫prototype 是构造函数的原型对象 * 构造函数的原型对象(prototype)中有一个constructor构造器 ... -
类、对象、方法和实例变量的关系
2019-03-27 16:22:581.类和对象的关系 1.类是对某一类事物的描述,是抽象的。对象是类的一个实例。 (“人”是一个类,“老师”是人的一个实例。“老师”是类,“你的老师”是一个对象。) 2.对象是函数、变量的集合体,而类是一组函数... -
构造函数、实例对象和原型对象之间的关系
2019-02-08 23:31:471.构造函数可以实例化对象 2.构造函数中有一个属性叫prototype,是...4. 实例对象的原型对象(__proto__)指向的是该构造函数的原型对象 5.构造函数的原型对象(prototype)中的方法是可以被实例对象直接访问的 如图: ... -
类和对象的实例
2019-03-05 15:37:05类和对象的实例 面向对象 从抽象中实力出一个个对象,通过对象之间发生关系进行去实现功能 面向过程 分析出实现功能所需要的步骤,并一个个进行调用,最后组成一个函数进行 功能的实现. 类和对象 对象是对现实生活中的... -
JavaScript——构造函数和实例对象之间的关系
2019-12-15 17:31:39实例对象中有个属性,proto,也是对象,叫...实例对象的原型__proto__和构造函数的原型prototype指向是相同的 实例对象中的__proto__原型指向的是构造函数中的原型prototype console.log(per.__proto__==Person.proto... -
构造函数、实例对象和原型对象三者之间的关系
2020-03-27 21:58:29构造函数可以实例化对象 构造函数中有一个属性叫...实例对象的原型对象( _ proto _ )指向的是该构造函数的原型对象 (当你看到原型对象_proto_时,说明这个对象就是实例对象) 构造函数的原型对象(prototype)中... -
JavaScript中实例对象和构造函数之间的关系
2020-03-27 17:23:31JavaScript中实例对象和构造函数之间的关系是什么? 1.实例对象通过构造函数来创建——创建的过程叫实例化 2.如何判断一个对象是不是这个数据类型? 1) 对象 instanceof 构造函数名字 2)通过构造器的方式 实例... -
构造函数与实例对象和原型对象三者间的关系
2020-11-11 15:59:02构造函数与实例对象和原型对象三者间的关系 ** 在我认知中,实例对象就是儿子,构造函数就是母亲,原型对象就是爸爸。每次生儿子,儿子就会把母亲身上的属性继承一份新的。 例子: var obj = {name:'干爸爸',age... -
构造函数、原型对象、实例对象的关系
2020-07-18 14:03:03在ES6之前,对象不是基于类创建的,而是用一种称为构建函数的特殊函数来定义对象和它们的特征。 构造函数是一种特殊的函数,主要用来初始化对象,即为对象成员变量赋初始值,它总与new一起使用。我们可以把对象中一些公共... -
构造函数和实例对象之间的关系 构造函数创建对象带来的问题 原型
2019-01-23 16:16:55构造函数和实例对象之间的关系 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script> // 面向对象的思想是----抽象... -
面试必问系列 构造函数,原型对象,实例之间的关系(二)实例属性和原型属性
2018-04-13 11:09:04在学习构造函数,原型对象,实例之间的关系时,有一个特别容易混乱的点就是实例属性和原型属性创建实例之后,我们可以为实例对象继续添加属性,如果我们添加的属性和原型对象中的属性重名,那么调用的时候,就会先在... -
JS原型和实例对象及构造函数之间的关系01
2019-11-18 21:35:58文章目录学习目标一、复习二、面向对象介绍三、面向过程和面向对象区别四、创建对象的三种方式五、this做了几件事五、显示对象结构六、构造...构造函数和实例对象和原型对象之间的关系十、总结三者之间的关系(构造函数... -
面试必问系列之 构造函数,原型对象和实例之间的关系(一)
2018-04-13 09:39:21关于构造函数,原型对象,实例之间的关系 ,先来看一张图,大致了解下1,构造函数构造函数跟普通函数没什么区别,都是由function定义的,为了和普通函数做区别,一般构造函数首字母大写像这样,构造函数可以使用new... -
JS实例对象和构造函数之间的关系以及如何判断对象的数据类型
2018-09-17 14:58:301.实例对象和构造函数之间的关系: 实例对象是通过构造函数来创建的 ====》这个过程叫实例化。 2.如何判断对象是不是这个数据类型? 1) 通过构造器的方式 实例对象.构造器==构造函数名字 2) 对象 instanceof ... -
面向过程和面向对象的编程思想 复习原型 构造函数和实例对象和原型对象之间的关系
2019-01-23 17:44:43体会面向过程和面向对象的编程思想 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script src="jquery-1.12.1.js">&... -
JS中构造函数、实例对象和原型对象三者之间的关系
2020-09-27 18:17:12这个题出现了_proto_,我就想起来自己原型链,尤其是构造函数、实例对象和原型对象三者之间的关系不是很懂,就写下这篇文章。 我们首先要知道: 一个需要共享并且通过实例对象调用的方法,是在构造函数的原型对象...
-
PPTP_NNN 服务生产环境实战教程
-
2021 年该学的 CSS 框架 Tailwind CSS 实战视频
-
ubuntu出现su: Authentication failure问题
-
乳胶型超高斯软边光阑
-
THONNY更新pip
-
龙芯生态应用开发基础:C语言精要
-
【硬核】一线Python程序员实战经验分享(1)
-
Glasterfs 分布式网络文件系统
-
Git的约定式提交
-
Unity 热更新技术-ILRuntime
-
asd
-
Python启蒙到架构师的核心技术精讲课程
-
产业数字金融的数字化与生态化
-
离子交换玻璃波导折射率分布的确定
-
学习算法:算法练习笔记-源码
-
ACFD作业1_2018311045.pdf
-
MHA 高可用 MySQL 架构与 Altas 读写分离
-
通过maven集成sonarqube
-
最假的样子:最终项目-源码
-
配置Nginx来支持php