说一点对JavaScript类机制的理解(一)---JavaScript权威指南
2018-01-04 13:18
323 查看
基本定义:
JavaScript中,类的实现是基于原型继承机制的,如果两个实例都是从同一个原型对象上继承了属性,它们就是同一个类的实例。
JavaScript中,类的所有实例对象都从同一个原型对象上继承属性,原型对象是类的核心。
如果两个对象继承自同一个原型,一般它们是由同一个构造函数创建并初始化的。
构造函数的prototye属性被用作新对象的原型,通过一个构造函数创建的所有对象都继承自一个相同的对象,它们都是同一个类的成员。
需要理解:
定义构造函数既是定义类,类名首字母要大写;构造函数是通过new关键字调用的,构造函数与普通函数调用时不尽相同的。
构造函数是用来构造新对象的,必须通过new调用,对于Range()构造函数的调用会自动使用Range.prototype作为新Range对象的原型。
原型对象是类的唯一标识:当且仅当两个对象继承自同一个原型对象时,它们才是属于同一个类的实例,构造函数不能作为类的标识,只有当两个构造函数的prototype属性指向同一个原型对象时,这两个构造函数创建的实例才属于同一个类的。
构造函数是类的”外在表现”,构造函数的名字通常用作类名,Range()构造函数创建Range对象,当使用instanceof来检测对象是否属于某个类时会用到构造函数,
constructor属性
任何JavaScript函数都可以用做构造函数,调用构造函数是需要用到一个prototye属性的,每个JavaScript函数都自动拥有一个prototype属性,这个属性的值是一个对象,这个对象包含唯一一个不可枚举属性constructor,cunstructor属性的值是一个函数对象:
constructor属性为对象提供了类
JavaScript中,类的实现是基于原型继承机制的,如果两个实例都是从同一个原型对象上继承了属性,它们就是同一个类的实例。
JavaScript中,类的所有实例对象都从同一个原型对象上继承属性,原型对象是类的核心。
如果两个对象继承自同一个原型,一般它们是由同一个构造函数创建并初始化的。
构造函数的prototye属性被用作新对象的原型,通过一个构造函数创建的所有对象都继承自一个相同的对象,它们都是同一个类的成员。
需要理解:
定义构造函数既是定义类,类名首字母要大写;构造函数是通过new关键字调用的,构造函数与普通函数调用时不尽相同的。
构造函数是用来构造新对象的,必须通过new调用,对于Range()构造函数的调用会自动使用Range.prototype作为新Range对象的原型。
重点:
构造函数和类的标识原型对象是类的唯一标识:当且仅当两个对象继承自同一个原型对象时,它们才是属于同一个类的实例,构造函数不能作为类的标识,只有当两个构造函数的prototype属性指向同一个原型对象时,这两个构造函数创建的实例才属于同一个类的。
构造函数是类的”外在表现”,构造函数的名字通常用作类名,Range()构造函数创建Range对象,当使用instanceof来检测对象是否属于某个类时会用到构造函数,
//判断对象r是否是Range对象 r instanceof Range instanceof实质上是检查r是否继承自Range.prototype
constructor属性
任何JavaScript函数都可以用做构造函数,调用构造函数是需要用到一个prototye属性的,每个JavaScript函数都自动拥有一个prototype属性,这个属性的值是一个对象,这个对象包含唯一一个不可枚举属性constructor,cunstructor属性的值是一个函数对象:
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 //=>true,constructor属性指代这个类
相关文章推荐
- (笔记)关于binder机制的一点理解
- 关于过渡机制的一点理解
- Java类型检测机制的一点理解
- 分页机制,一点小小的理解,os 于渊的树上的
- zookeeper 中 Watcher 通知机制的一点理解
- Sybase 12.5锁机制的一点理解
- java中的回调机制(自己的一点理解)
- window消息机制的一点理解
- 对JavaScript事件机制的一点理解
- Android 消息机制的一点理解
- 关于session实现原理和运行机制的一点理解
- 关于过渡机制一点理解
- 对于session与cookie机制,自己的一点理解
- 如何理解java中回调机制和模板机制
- 关于ThreadLocal的一点理解
- 对骨骼动画的一点理解
- 深入理解java异常处理机制
- 关于泛型的一点理解
- 对Silverlight中ObservableCollection自己的一点理解 .
- 第12条:理解消息转发机制(2)