javascript指南-类和对象
来源:互联网 发布:无证之罪 郭宇 知乎 编辑:程序博客网 时间:2024/04/29 20:18
1.类和构造函数
使用关键字new调用构造函数会自动创建一个新对象,构造函数本身只需初始化这个新对象的状态即可。调用构造函数的一个重要特征是,构造函数的prototype属性被用做新对象的原型。这意味着通过同一个构造函数创建的所有对象都继承自一个相同对象,因此它们都是同一个类成员。
//这是一个构造函数,用以初始化新创建的对象//注意,这里并没有创建并返回一个对象,只是初始化function Range(from,to){//这2个属性是不可继承的,每个对象都拥有唯一的属性this.from=from;this.to=to;}//所有的对象都继承自这个对象//注意,属性的名字必须是prototypeRange.prototype={includes:function(x){return this.from<=x && x<=this.to;}};var r=new Range(1,3);//创建一个新对象r.includes(2);//true,2在范围内alert(r.from);//对象中的属性常规的编程约定:从某种意义上讲,定义构造函数即是定义类,并且类名首字母要大写。而普通的函数和方法都是首字母小写。
如果要判断某个对象是否是某个对象的实例的话,可以用
r instanceof Range
constructor属性
每个javascript函数都自动拥有一个prototype属性,这个属性的值是一个对象,这个对象包含唯一一个不可枚举属性constructor,它的值是一个函数对象:
var F=function(){};//这是一个函数var p=F.prototype;//这是F相关联的原型对象var c=p.constructor;//这是与原型相关联的函数c===F;//true,对于任意函数F.prototype.constructor=F可以看到构造函数中原型中存在预先定义好的constructor属性,这意味着对象通常继承的constructor均指它们的构造函数。由于构造函数是类的“公共标识”,因此这个constructor属性为对象提供了类:
var o=new F();//创建类F的一个对象o.constructor===F;//constructor属性指代这个类下图展示了构造函数和原型对象之间的关系,包括原型到构造函数的反向引用以及构造函数创建的实例
注意如果使用Range.prototype={}的方式,那么就会重写预定义的Range.prototype对象。这个新定义的原型对象不含有constructor属性,因此Range类的实例也不含有
constructor属性。可以给原型显式添加一个构造函数:
Range.prototype={constructor:Range,//显式设置构造函数反向引用includes:function(x){return this.from<=x && x<=this.to;}};如果依次给原型对象添加方法,则不会破坏原来原型中的constructor属性
var F1=function(){};F1.prototype.add=function(){};当然如果觉的这样写分散了,可以使用下面的方式:
//通过继承的方式,来为prototype添加属性function extend(destination,source){for(var property in source){destination[property]=source[property];}}var F1=function(){};extend(F1.prototype,{add:function(){}});F1.prototype
0 0
- javascript指南-类和对象
- JavaScript 指南 - 使用对象
- javascript指南-对象
- 【JavaScript】类和对象
- JavaScript类和对象
- JavaScript权威指南_76_第9章_类和模块_9.6-JavaScript中的面向对象技术
- 面向对象程序员JavaScript指南
- JavaScript面向对象编程指南
- 《javascript面向对象编程指南》
- javascript 面向对象 和 javascript 类
- JavaScript类和内置对象
- JavaScript定义类和对象
- JavaScript定义类和对象
- javascript类对象和继承
- JavaScript封装对象和类
- Javascript类和对象基础知识
- JavaScript面向对象编程指南--第一章 面向对象的JavaScript
- JavaScript权威指南_39_第6章_对象_6.2-属性的查询和设置
- shell 脚本 打印指定目录下包含某些字符串的文件
- jQuery 核心函数:jQuery([selector,[context]])最基础的函数
- 第三章课后练习
- IOS实例随笔
- ZOJ 题目分类,学校的一个巨巨做的。
- javascript指南-类和对象
- 四种常见的 POST 提交数据方式
- 第十三周项目6-体验文件操作 4
- 学习Unity3D第五天之脚本入门(选择结构和循环结构)。
- 实验二 数据结构——线性表的实验
- Sort List
- 十六进制字符串和byte数组的相互转化
- Flume-NG中用到的一些好的文章
- 递推 数字三角形