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"代码
Jan 09 Javascript
JavaScript NodeTree导航栏(菜单项JSON类型/自制)
Feb 01 Javascript
js 跳出页面的frameset框架示例介绍
Dec 23 Javascript
js+css实现的简单易用兼容好的分页
Dec 30 Javascript
jQuery 动态云标签插件
Nov 11 Javascript
jQuery实现图像旋转动画效果
May 29 Javascript
angular+bootstrap的双向数据绑定实例
Mar 03 Javascript
js实现轮播图的两种方式(构造函数、面向对象)
Sep 30 Javascript
React根据宽度自适应高度的示例代码
Oct 11 Javascript
js实现弹出框的拖拽效果实例代码详解
Apr 16 Javascript
vue项目中全局引入1个.scss文件的问题解决
Aug 01 Javascript
vue实践---vue不依赖外部资源实现简单多语操作
Sep 21 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
哪吒敖丙传:新人物二哥敖乙出场 小敖丙奶气十足
2020/03/08 国漫
模拟flock实现文件锁定
2007/02/14 PHP
php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
2012/09/07 PHP
PHP入门经历和学习过程分享
2014/04/11 PHP
linux下实现定时执行php脚本
2015/02/13 PHP
Thinkphp调用Image类生成缩略图的方法
2015/03/07 PHP
php对关联数组循环遍历的实现方法
2015/03/13 PHP
Laravel 实现添加多语言提示信息
2019/10/25 PHP
使用jscript实现二进制读写脚本代码
2008/06/09 Javascript
javascript 动态数据下的锚点错位问题解决方法
2008/12/24 Javascript
JavaScript经典效果集锦
2010/07/06 Javascript
jQuery函数的等价原生函数代码示例
2013/05/27 Javascript
基于Node.js的强大爬虫 能直接发布抓取的文章哦
2016/01/10 Javascript
JS加载器如何动态加载外部js文件
2016/05/26 Javascript
js图片加载效果实例代码(延迟加载+瀑布流加载)
2017/05/12 Javascript
angularjs实现柱状图动态加载的示例
2017/12/11 Javascript
js传递数组参数到后台controller的方法
2018/03/29 Javascript
详解vue2.0 资源文件assets和static的区别
2018/11/27 Javascript
通过扫小程序码实现网站登陆功能
2019/08/22 Javascript
详解JavaScript 高阶函数
2020/09/14 Javascript
VUE项目实现主题切换的多种方法
2020/11/26 Vue.js
python在非root权限下的安装方法
2018/01/23 Python
Django开发中复选框用法示例
2018/03/20 Python
Python实用技巧之利用元组代替字典并为元组元素命名
2018/07/11 Python
10个Python小技巧你值得拥有
2018/09/29 Python
Flask框架踩坑之ajax跨域请求实现
2019/02/22 Python
Python3实现配置文件差异对比脚本
2019/11/18 Python
django-xadmin根据当前登录用户动态设置表单字段默认值方式
2020/03/13 Python
Python matplotlib 绘制双Y轴曲线图的示例代码
2020/06/12 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
2020/12/14 Python
python用700行代码实现http客户端
2021/01/14 Python
《湘夫人》教学反思
2014/02/21 职场文书
中职毕业生自我鉴定
2014/09/13 职场文书
学校远程教育工作总结
2015/08/11 职场文书
Python激活Anaconda环境变量的详细步骤
2021/06/08 Python
Spring Bean的实例化之属性注入源码剖析过程
2021/06/13 Java/Android