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加密解密7种方法总结分析
Oct 07 Javascript
jQuery EasyUI API 中文文档 - Menu菜单
Oct 03 Javascript
js/jquery解析json和数组格式的方法详解
Jan 09 Javascript
JS+CSS实现分类动态选择及移动功能效果代码
Oct 19 Javascript
js仿微信抢红包功能
Sep 25 Javascript
详解Vue用自定义指令完成一个下拉菜单(select组件)
Oct 31 Javascript
Node.js上传文件功能之服务端如何获取文件上传进度
Feb 05 Javascript
JavaScript遍历查找数组中最大值与最小值的方法示例
May 24 Javascript
深入了解JavaScript 私有化
May 30 Javascript
微信小程序如何播放腾讯视频的实现
Sep 20 Javascript
前端开发基础javaScript的六大作用
Aug 06 Javascript
vue a标签点击实现赋值方式
Sep 07 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
BBS(php & mysql)完整版(六)
2006/10/09 PHP
可以在线执行PHP代码包装修正版
2008/03/15 PHP
php $_SERVER当前完整url的写法
2009/11/12 PHP
php 定界符格式引起的错误
2011/05/24 PHP
php IP转换整形(ip2long)的详解
2013/06/06 PHP
php+js实现图片的上传、裁剪、预览、提交示例
2013/08/27 PHP
PHP中error_reporting()用法详解
2015/08/31 PHP
JavaScript使用prototype定义对象类型
2007/02/07 Javascript
为JavaScript类型增加方法的实现代码(增加功能)
2011/12/29 Javascript
javascript 寻找错误方法整理
2014/06/15 Javascript
仿百度联盟对联广告实现代码
2014/08/30 Javascript
javascript实现判断鼠标的状态
2015/07/10 Javascript
有关json_decode乱码及NULL的问题
2015/10/13 Javascript
使用jQuery制作浮动工具栏的实例分享
2016/05/13 Javascript
JS实现根据密码长度显示安全条功能
2017/03/08 Javascript
js学习总结_轮播图之渐隐渐现版(实例讲解)
2017/07/17 Javascript
原生JS+Canvas实现五子棋游戏
2020/05/28 Javascript
jQuery实现的电子时钟效果完整示例
2018/04/28 jQuery
Python使用turtule画五角星的方法
2015/07/09 Python
python实现八大排序算法(1)
2017/09/14 Python
python实时获取外部程序输出结果的方法
2019/01/12 Python
python dict 相同key 合并value的实例
2019/01/21 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
2019/07/04 Python
Flask框架学习笔记之使用Flask实现表单开发详解
2019/08/12 Python
详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
2019/08/27 Python
Python将视频或者动态图gif逐帧保存为图片的方法
2019/09/10 Python
tensorflow实现读取模型中保存的值 tf.train.NewCheckpointReader
2020/02/10 Python
用python实现学生管理系统
2020/07/24 Python
django中ImageField的使用详解
2020/12/21 Python
css3针对移动端卡顿问题的解决(动画性能优化)
2020/02/14 HTML / CSS
html5使用canvas画空心圆与实心圆
2014/12/15 HTML / CSS
《雷雨》教学反思
2014/02/20 职场文书
工资收入证明样本(5篇)
2014/09/16 职场文书
法人身份证明书
2015/06/18 职场文书
学子宴致辞大全
2015/07/27 职场文书
导游词之天津古文化街
2019/11/09 职场文书