对js 面对对象编程的一些简单的理解
由简单开始深入:
最简单的 直接对象开始
var desen = {
age:24,
name:'xyf',
job:'fontEnd',
getName:function(){
console.log(this.name);
},
setName:function(name){
this.name = name;
}
}
这是一个简单的对象实例。但是如果我要创建多个实例,将会非常麻烦。
改进写法:使用我们经常听到的构造函数模式。(构造函数的取名默认首位大写)
function Desen(age,name){
this.age = age;
this.name = 'name';
this.getName=function(){
console.log(this.name);
}
this.setName=function(name){
this.name = name;
}
}
使用构造函数的好处有很多。一来可以方便的创建多个实例,二来可以清楚的知道他们的原型对象(实例拥有constructor属性,指向他们的构造函数) 再进一步:如果我们有很多实例了,但是每个实例中有重复包含了setNameh 函数 非常浪费内存。这里就要引用到耳熟能详的原型概念了--Prototype.
继续修改之前的构造函数
function Desen(age,name){
this.age = age;
this.name = 'name';
this.getName=function(){
console.log(this.name);
}
}
Desen.prototype.setName = function(name){
this.name = name;
}
这种写法,将之前每个实例都拥有的相同功能简化为一个。存于prototype对象中。至于为何(参考js原型链)。
对js 面对对象编程的一些简单的理解的更多相关文章
- js面对对象编程(二):属性和闭包
上篇博客中解说了一些js对象的基本概念和使用方法.这篇博客解说一下js属性方面的:公有属性.私有属性,特权方法. 假设学过java.公有属性.私有属性,特权方法(即能够訪问和设置私有属性的方法)一定非 ...
- js面对对象编程
说到js,非常大一部分人会说我非常熟悉,在日常的web开发中经经常使用,那么你的js代码是符合面对对象思路的吗?那你会问我面向过程的js代码有什么不好吗?我的感受是面对对象的js编码更加简洁,降低了混 ...
- 面对对象编程(OOP, Object Oriented Programming)及其三个基本特性
一千个读者,一千个哈姆雷特.对于面对对象编程,书上都会告诉我们它有三个基本特性,封装,继承,多态,但谈起对这三点的见解,又是仁者见仁智者见智,感觉还是得多去编程中体验把 . 面向对象编程(OOP, O ...
- Python学习6——再谈抽象(面对对象编程)
1.对象魔法 在面对对象编程中,术语对象大致意味着一系列数据(属性)以及一套访问和操作这些数据的方法. 使用对象而非全局变量以及函数的原因有多个,而最重要的好处不过以下几点: 多态:可对不同类型的对象 ...
- python面对对象编程----2:__init__
面对对象编程估计我们最早接触到的就是__init__了,也就是实例的初始化处理过程: 1:来看看最基础的__init__ class Card(object): #抽象类Card,并不用于实例化 de ...
- C++ 基础语法 快速复习笔记---面对对象编程(2)
1.C++面对对象编程: a.定义: 类定义是以关键字 class 开头,后跟类的名称.类的主体是包含在一对花括号中.类定义后必须跟着一个分号或一个声明列表. 关键字 public 确定了类成员的访问 ...
- Day-8: 面对对象编程
面对过程的程序设计方法意在将函数分成子函数,再依次调用这些函数来解决问题. 而面对对象的程序设计方法,来源于自然界,类是实例的抽象,实例是类的具体.自定义出来的对象是类,而所有的数据都可以看成是对象, ...
- 跟着百度学PHP[4]OOP面对对象编程-7-OOP的一些关键子讲解
面对对象常用的一些关键子:http://www.cnblogs.com/xishaonian/p/6146794.html排版不是很好望见谅. THE END
- 浅谈Perl的类、包、模块与面对对象编程
http://blog.chinaunix.net/uid-27464093-id-3308003.html Perl面向对象 Perl面向对象学习例子实例代码教程 - 在我们了解perl的面向对象的 ...
随机推荐
- 关于在PHP中当一个请求未完成时,再发起另一个请求被阻塞的问题
最近做项目的时候遇到个问题,就是做阿里云oss大文件上传进度条显示,因为要实时查询上传分片进度,所以在上传的同时必须要再发起查询的请求,但是一直都是所有分片上传完成后查询的请求才执行,刚开始以为是阿里 ...
- oracle中去掉文本中的换行符、回车符、制表符
一.特殊符号ascii定义 制表符 chr(9) 换行符 chr(10) 回车符 chr(13) UPDATE tc_car_order set USE_REASON = REPLACE('USE ...
- iOS 声明属性关键字的总结
atomic: 原子操作(原子性是指事务的一个完整操作,操作成功就提交,反之就回滚. 原子操作就是指具有原子性的操作)在objective-c 属性设置里面 默认的就是atomic ,意思就是 set ...
- gnss到底是什么呢
GNSS Global Navigation Satellite System 全球卫星导航系统:提到这个很多人会不明白GNSS倒是是个啥东西呢,和北斗,GPS, GLONASS,Galileo系统有 ...
- POJ 2739 Sum of Consecutive Prime Numbers( *【素数存表】+暴力枚举 )
Sum of Consecutive Prime Numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 19895 ...
- “There's no Qt version assigned to this project for platform ” - visual studio plugin for Qt
1.find menu "Qt VS Tools", select Qt Options 2.add a new Qt version 3. right click the tar ...
- codeforces 451C. Predict Outcome of the Game 解题报告
题目链接:http://codeforces.com/problemset/problem/451/C 题目意思:有3支球队(假设编号为1.2.3),总共要打 n 场比赛,已知已经错过这n场比赛中的 ...
- 使用pngcrush压缩png图片
写在前面: Pngcrush是一个优化的PNG(便携式网络图形)文件.它可以运行在MSDOS窗口中一个命令行,或从UNIX或LINUX命令行.其主要目的是为了 减少PNG IDAT数据 ...
- [AHOI 2006] 上学路线
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1266 [算法] 首先 , 用Dijkstra求单源最短路 然后 , 建出这张图G的最 ...
- UVA 11174 Stand in a Line 树上计数
UVA 11174 考虑每个人(t)的所有子女,在全排列中,t可以和他的任意子女交换位置构成新的排列,所以全排列n!/所有人的子女数连乘 即是答案 当然由于有MOD 要求逆. #include & ...