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下给元素添加事件的方法与代码
Aug 13 Javascript
JS创建优美的页面滑动块效果 - Glider.js
Sep 27 Javascript
DOM和XMLHttpRequest对象的属性和方法整理
Jan 04 Javascript
js操作table示例(个人心得)
Nov 29 Javascript
JS获取随机数和时间转换的简单实例
Jul 10 Javascript
手机端 HTML5使用photoswipe.js仿微信朋友圈图片放大效果
Aug 25 Javascript
jquery.cookie.js的介绍与使用方法
Feb 09 Javascript
self.attachevent is not a function的解决方法
Apr 04 Javascript
JsChart组件使用详解
Mar 04 Javascript
微信小程序实现tab页面切换功能
Jul 13 Javascript
详解Vue+axios+Node+express实现文件上传(用户头像上传)
Aug 10 Javascript
使用element-ui table expand展开行实现手风琴效果
Mar 15 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 日,周,月点击排行统计
2012/01/11 PHP
php实现四舍五入的方法小结
2015/03/03 PHP
php 无限级分类 获取顶级分类ID
2016/03/13 PHP
PHP连续签到功能实现方法详解
2019/12/04 PHP
JavaScript XML和string相互转化实现代码
2011/07/04 Javascript
你必须知道的JavaScript 变量命名规则详解
2013/05/07 Javascript
JavaScript 上万关键字瞬间匹配实现代码
2013/07/07 Javascript
js二维数组定义和初始化的三种方法总结
2014/03/03 Javascript
canvas绘制七巧板
2017/02/03 Javascript
微信小程序 跳转传递数据的实例
2017/07/06 Javascript
ES6新增数据结构WeakSet的用法详解
2017/08/07 Javascript
webpack2.0配置postcss-loader的方法
2017/08/17 Javascript
vue2导航根据路由传值,而改变导航内容的实例
2017/11/10 Javascript
VueAwesomeSwiper在VUE中的使用以及遇到的一些问题
2018/01/11 Javascript
Angular5中调用第三方js插件的方法
2018/02/26 Javascript
小程序云函数调用API接口的方法
2019/05/17 Javascript
Python升级提示Tkinter模块找不到的解决方法
2014/08/22 Python
python记录程序运行时间的三种方法
2017/07/14 Python
Python3 操作符重载方法示例
2017/11/23 Python
Python读取txt内容写入xls格式excel中的方法
2018/10/11 Python
在Python 字典中一键对应多个值的实例
2019/02/03 Python
总结python中pass的作用
2019/02/27 Python
Python split() 函数拆分字符串将字符串转化为列的方法
2019/07/16 Python
python xlwt如何设置单元格的自定义背景颜色
2019/09/03 Python
PHP基于phpqrcode类库生成二维码过程解析
2020/05/28 Python
Python带参数的装饰器运行原理解析
2020/06/09 Python
英国皇室御用百货:福南梅森(Fortnum & Mason)
2017/12/03 全球购物
护士自我鉴定范文
2013/10/06 职场文书
初中考试作弊检讨书
2014/02/01 职场文书
临床护理求职信
2014/04/26 职场文书
房屋维修协议书范本
2014/09/25 职场文书
群众路线党员个人整改措施
2014/10/27 职场文书
2015年女生节活动总结
2015/02/27 职场文书
2015年社区计生工作总结
2015/04/21 职场文书
关于flex 上下文中自动 margin的问题(完整例子)
2021/05/20 HTML / CSS
MySQL 数据 data 基本操作
2022/05/04 MySQL