JavaScript使用Prototype实现面向对象的方法


Posted in Javascript onApril 14, 2015

本文实例讲述了JavaScript使用Prototype实现面向对象的方法。分享给大家供大家参考。具体分析如下:

prototype 是 Function 对象的一个属性,这个属性指向另一个对象。 这个对象的所有属性和方法,都会被构造函数的实例继承。

同时 prototype 又存在一个指向构造函数的引用 constructor,这样就成功的构成一个循环引用的原型链结构。

我们可以把那些不变的属性和方法,直接定义在 prototype 对象上, 节省内存开销。

function Cat(name, color) {
  this.name = name;
  this.color = color;
}
Cat.prototype.type = 'mammal';
Cat.prototype.eat = function() {
  console.log('eat fish');
};
var cat1 = new Cat('Kitty', 'white');
var cat2 = new Cat('Smokey', 'black');
console.log(cat1.type); // mammal
console.log(cat1.eta === cat2.eta);
// TRUE, same reference
console.log(cat1.constructor === Cat)
// TRUE, from Person.prototype

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
javascript实现控制的多级下拉菜单
Jul 05 Javascript
javascript实现加载xml文件的方法
Nov 24 Javascript
JavaScript位置与大小(1)之正确理解和运用与尺寸大小相关的DOM属性
Dec 26 Javascript
jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法(附demo源码下载)
Feb 25 Javascript
BootStrap.css 在手机端滑动时右侧出现空白的原因及解决办法
Jun 07 Javascript
jQuery animate easing使用方法图文详解
Jun 17 Javascript
angularJs关于指令的一些冷门属性详解
Oct 24 Javascript
DOM 事件的深入浅出(二)
Dec 05 Javascript
基于vue v-for 循环复选框-默认勾选第一个的实现方法
Mar 03 Javascript
利用JavaScript缓存远程窃取Wi-Fi密码的思路详解
Nov 05 Javascript
vue项目中使用bpmn为节点添加颜色的方法
Apr 30 Javascript
简单了解JavaScript作用域
Jul 31 Javascript
jQuery插件ajaxFileUpload实现异步上传文件效果
Apr 14 #Javascript
Angularjs制作简单的路由功能demo
Apr 14 #Javascript
javascript中几个容易混淆的概念总结
Apr 14 #Javascript
浅谈Sizzle的“编译原理”
Apr 14 #Javascript
深入探寻seajs的模块化与加载方式
Apr 14 #Javascript
javascript数组去重的方法汇总
Apr 14 #Javascript
JavaScript字符串常用类使用方法汇总
Apr 14 #Javascript
You might like
PHP 5.0对象模型深度探索之绑定
2006/09/05 PHP
将php数组输出html表格的方法
2014/02/24 PHP
微信第三方登录(原生)demo【必看篇】
2017/05/26 PHP
JQuery datepicker 使用方法
2011/05/20 Javascript
js实现带圆角的两级导航菜单效果代码
2015/08/24 Javascript
Nodejs初级阶段之express
2015/11/23 NodeJs
Bootstarp风格的toggle效果分享
2016/02/23 Javascript
JS实现图文并茂的tab选项卡效果示例【附demo源码下载】
2016/09/21 Javascript
Bootstrap Table的使用总结
2016/10/08 Javascript
完美的js图片轮换效果
2017/02/05 Javascript
使用ionic在首页新闻中应用到的跑马灯效果的实现方法
2017/02/13 Javascript
使用ionic播放轮询广告的实现方法(必看)
2017/04/24 Javascript
npm国内镜像 安装失败的几种解决方案
2017/06/04 Javascript
基于casperjs和resemble.js实现一个像素对比服务详解
2018/01/10 Javascript
vue2.0的虚拟DOM渲染思路分析
2018/08/09 Javascript
Vue 2.0 中依赖注入 provide/inject组合实战
2019/06/20 Javascript
layui 数据表格 根据值(1=业务,2=机构)显示中文名称示例
2019/10/26 Javascript
解决vue scoped scss 无效的问题
2020/09/04 Javascript
解决Antd Table组件表头不对齐的问题
2020/10/27 Javascript
[06:20]2015国际邀请赛第三日top10
2015/08/08 DOTA
[01:06] DOTA2英雄背景故事第三期之秩序法则光之守卫
2020/07/07 DOTA
简单理解Python中的装饰器
2015/07/31 Python
用python结合jieba和wordcloud实现词云效果
2017/09/05 Python
python OpenCV学习笔记之绘制直方图的方法
2018/02/08 Python
windows下安装python的C扩展编译环境(解决Unable to find vcvarsall.bat)
2018/02/21 Python
python脚本后台执行方式
2019/12/21 Python
解决Keras 与 Tensorflow 版本之间的兼容性问题
2020/02/07 Python
Python 利用OpenCV给照片换底色的示例代码
2020/08/03 Python
DNA基因检测和分析:23andMe
2019/05/01 全球购物
系统管理员的职责包括那些?管理的对象是什么?
2016/09/20 面试题
留学推荐信范文
2014/05/10 职场文书
2014年实习班主任工作总结
2014/11/08 职场文书
社区党支部公开承诺书
2015/04/29 职场文书
欠条样本
2015/07/03 职场文书
2016年大学生社区服务活动总结
2016/04/06 职场文书
MySQL深分页问题解决思路
2022/12/24 MySQL