简单理解javascript中的原型对象,实现对之间共享属性和行为
javascript中提供了构造函数。可以方便的创建对象。
典型的构造函数例如以下:
function Person(name, age)
{ this.name = name;this.age = age;this.say = function () {return this.name + ',' + this.age;;
}
之后就能够用new和构造函数创建多个对象。javascript中。类的不同对象之间,属性和方法都是独立的。什么意思呢?java中类的不同对象之间,成员变量是独立的(每一个对象都有自己的存储空间。存储属性值)。可是方法是共享的,内存中仅仅有一份。可是javascript中,方法也是一个对象一份。假设复创建了多个对象,那么每一个对象中的方法都会在内存中开辟新的空间,这样浪费的空间就比較多。
var p1= new Person('a', 25);
var p2= new Person('b', 22);
alert(p1.say == p2.say);//结果返回的是false,说明方法内存空间也不同
javascript中没有什么static和成员变量之分,假设想在对象之间共享数据或方法,仅仅能借助原型对象。将共享的变量和方法都放在原型对象中。
function User(name,age)
{this.name = name;this.age = age;
}
User.prototype.addr = 'shenzhen';//在原型中加入属性
User.prototype.show = function(){//在原型中加入方法alert(this.name+'|'+this.age);
};
var user1 = new User('ZXC',22);
var user2 = new User('CXZ',21);
alert(user1.show == user2.show);//返回 true 说明show方法是共享的
JS的构造函数都有一个prototype属性,指向它的原型对象(事实上就是个普通的JS对象)。
通过同一个构造函数创建出来的对象。共享同一个原型对象。原型对象初始化的时候是空的。我们能够在里面自己定义不论什么属性和方法,这些方法和属性都将被该构造函数所创建的对象继承。
假设原型发生了变化。那么全部实例都会跟着改变。
简单理解javascript中的原型对象,实现对之间共享属性和行为相关推荐
- 理解JavaScript中的原型与原型链
理解JavaScript中的原型与原型链 原型链是一种机制,指的是JavaScript中每个内置的对象都有一个内置的__proto__属性指向创建它的构造函数的prototype(原型)属性.原型链的 ...
- JS原型理解——JS中的原型对象
JavaScript中的原型对象 下一篇:JS原型理解--JS继承的实现方式 原型 原型是JavaScript中继承的基础,JavaScript的继承就是基于原型的继承. 一 理解原型 1.1 函数的 ...
- 理解JavaScript中的原型继承(2)
两年前在我学习JavaScript的时候我就写过两篇关于原型继承的博客: 理解JavaScript中原型继承 JavaScript中的原型继承 这两篇博客讲的都是原型的使用,其中一篇还有我学习时的错误 ...
- js实现html模板继承,理解JavaScript中的原型和继承
本文主要讲了原型如何在JavaScript中工作,以及如何通过[Prototype]所有对象共享的隐藏属性链接对象属性和方法:以及如何创建自定义构造函数以及原型继承如何工作以传递属性和方法值. 介绍 ...
- 彻底理解js中的原型对象和prototype属性
prototype(函数的原型属性) prototype 是一个指向该实例所使用的原型对象的[指针] prototype 是几乎所有的函数(除了某些内建函数)的属性 prototype 不是一个实例的 ...
- 【原理】理解JavaScript中的上下文-对象字面量
⭐️ 本文首发自 前端修罗场(点击即可加入),一个专注 Web 技术.答疑解惑.面试辅导.职业发展的社区.现在加入,即可参与打卡挑战,和一群人一起努力.挑战成功即可获取一次免费的模拟面试机会,进而评估 ...
- 十分钟理解javascript中的this对象
最近在参加的几场面试中都涉及到了对于js中this对象的理解,那么怎样去理解this呢?这里针对不同的场景通过代码来帮助我们理解好this. this到底指向什么? this指向什么呢?一言以蔽之: ...
- 在JavaScript中使用“原型”还是“ this”?
之间有什么区别 var A = function () {this.x = function () {//do something}; }; 和 var A = function () { }; A. ...
- JavaScript中的原型和继承
请在此暂时忘记之前学到的面向对象的一切知识.这里只需要考虑赛车的情况.是的,就是赛车. 最近我正在观看 24 Hours of Le Mans ,这是法国流行的一项赛事.最快的车被称为 Le Mans ...
- 深入理解Javascript中构造函数和原型对象的区别
在 Javascript中prototype属性的详解 这篇文章中,详细介绍了构造函数的缺点以及原型(prototype),原型链(prototype chain),构造函数(constructor) ...
最新文章
- 使用系统规则测试System.in和System.out
- 霸榜!Google发布语义分割新数据集!
- 手机老是应用无响应是怎么回事?
- ORACLE功能GREATEST功能说明具体实例
- 配置TURN服务器实现NAT穿透
- Android APP启动图标尺寸
- 解析PR曲线与目标检测中的mAP指标
- 当div的宽度为百分比时,如何设置成为一个正方形?
- Eclipse显示单词拼写错误The word ‘url‘ is not correctly spelled
- Ubuntu- packages have unmet dependencies问题及修改Ubuntu源
- pytorch to_device遇到数据迁移不成功的问题
- 快速拿下CKA认证考试,这些要求和tips你得知道
- 交接读代码得过程和整理文档
- 徐州地区地理生物计算机考试试题,2020年初中学业水平考试 地理、生物7月14日开考...
- 「备战春招/秋招系列」程序员的简历就该这样写
- C++中cout的使用
- 创建索引有哪些缺点?有哪些负面的影响?
- Linux搭建socks 5代理服务器及使用
- 简约开源导航书签管理系统PHP源码
- shopyy独立站开发功能分析