归纳下js面向对象的几种常见写法
//定义Circle类,拥有成员变量r,常量PI和计算面积的成员函数area()
1.工厂方式
var Circle = function() {var obj = new Object(); obj.PI = 3.14159; obj.area = function( r ) { return this.PI * r * r; } return obj; } var c = new Circle(); alert( c.area( 1.0 ) );
2.比较正规的写法
function Circle(r) {this.r = r; } Circle.PI = 3.14159; Circle.prototype.area = function() { return Circle.PI * this.r * this.r; } var c = new Circle(1.0); alert(c.area());
3.json写法
var Circle={"PI":3.14159,"area":function(r){return this.PI * r * r; } }; alert( Circle.area(1.0) );
4.有点变化,但是实质和第一种一样
var Circle=function(r){this.r=r; } Circle.PI = 3.14159; Circle.prototype={ area:function(){ return this.r*this.r*Circle.PI; } } var obj=new Circle(1.0); alert(obj.area())
Circle.PI = 3.14159; 能够放入属性中写成this.PI=3.14159;
常用为第一种和第三种
第三种写法的扩展小实例
var show={btn:$('.div1'),init:function(){var that=this; alert(this); this.btn.click(function(){ that.change(); alert(this); }) }, change:function(){ this.btn.css({'background':'green'}); } } show.init();
需要注意的是this的指向问题
转载于:https://www.cnblogs.com/try-better-tomorrow/p/5200872.html
归纳下js面向对象的几种常见写法相关推荐
- Python编程语言学习:判断变量是否为NONE或False的几种常见写法(if not用法教程)
Python编程语言学习:判断变量是否为NONE或False的几种常见写法(if not用法教程) 目录 判断变量是否为NONE或False的几种常见写法(if not用法教程) 1.not用法 2. ...
- JS面向对象的三种写法
欢迎来我的博客交流 /*面向对象的三种写法 *1.构造函数 *2.class类 * 2.直接操作对象 * */ /**/function myShow(name){this.name = name;t ...
- js面向对象的五种写法
//定义Circle类,拥有成员变量r,常量PI和计算面积的成员函数area() Java代码 //第1种写法 function Circle(r) { this.r = r; } Circle. ...
- mysql索引失效_导致MySQL索引失效的几种常见写法
最近一直忙着处理原来老项目遗留的一些SQL优化问题,由于当初表的设计以及字段设计的问题,随着业务的增长,出现了大量的慢SQL,导致MySQL的CPU资源飙升,基于此,给大家简单分享下这些比较使用的易于 ...
- js简易计算机代码if语句,简单学习下JS里的if语句的写法
在 JavaScript 中,我们可以使用下面几种条件语句: if 语句 在一个指定的条件成立时执行代码. if...else 语句 在指定的条件成立时执行代码,当条件不成立时执行另外的代码. if. ...
- SQL Update的四种常见写法
/* 实验对象:两个学生表 1. 一个stu学生表,一个stu1学生表. 2. 上述表有三个字段 (学生id,学生性别,学生名字)*//* update语句常见场景,分为两大类: 1.单表update ...
- 什么是js面向对象?有什么特点?
什么是js面向对象? 1.首先,js面向对象是一种思想: 2.其次,遵循万物皆对象的准则:程序中的关键模块都可以视为对象,对象都是由属性和方法组成,属性可以理解为对象的特征,是静态的,方法可以理解为对 ...
- 软件开发的几种常见模型(网易秋招笔试题)
软件开发模型(Software Development Model)是指软件开发全部过程.活动和任务的结构框架. 开发模型有: 1.边做边改模型(Build-and-Fix Model): 2.瀑布模 ...
- 四种常见的浏览器内核简介----JS城市选择控件
一 四种常见的浏览器内核简介 Gecko: Gecko: Netscape6开始采用的内核,后来的Mozilla FireFox (火狐浏览器) 也采用了该内核,Gecko的特点是代码完全公开,因此, ...
最新文章
- BSP 二叉树再次讨论
- 机器学习导论(张志华):正定核应用
- sklearn自学指南(part59)--神经网络模型(监督)
- python循环post请求_循环post请求太多
- 二叉堆(binary heap)—— 优先队列的实现
- EXE文件结构及读取方法
- 轨迹绕圈算法_算法程序解决如下问题:质点在平面坐标系中运动,每次x或者y坐标增加或减少1,如何判断质点是否顺时针质点的轨迹我们是知道的,当我们已经知道质点在绕圈运动了,那么怎么判断它是在顺时...
- linux vi下划线,如何将我的Vim高亮线更改为不是下划线?
- 【前端_React】React小书
- 申请并部署阿里云SSL免费证书详细流程
- java编程300例:5.通过用户输入,友好打招呼
- 什么是对比度、亮度?教你在线调整图片色彩
- 校园网使用家用无线路由器
- PHP短网址缩短源码 短网址生成系统源码
- logiscope系列-使用说明书
- Hydra-口令破解神器
- 深度学习之10分钟入门h5py
- 解决“windows已经阻止此软件因为无法验证发行者”方法
- WPF之布局属性HorizontalAlignment、HorizontalContentAlignment、VertialAlignment、VerticalContentAlignment
- $Linux vi/vim编辑器常用命令与用法总结
热门文章
- different intergers
- case when then else_SQL 优化大神玩转 MySQL函数系列_case_when 的坑
- 计算机组成原理—存储系统总结
- [leetcode]5337. 每个元音包含偶数次的最长子字符串
- bzoj 3372: [Usaco2004 Feb]Moo University -- Financial Aid 财政补助(set+贪心)
- 拆点并查集(poj 1182: 食物链)
- SPFA差分约束(bzoj 2330: [SCOI2011]糖果)
- dp动态规划_最短路径累加和最大问题
- [Python] zeros(r, c)和ones(r, c)和eye(n) 生成特殊矩阵
- python后台架构Django教程——数据模型Model