Javascript的原型链、instanceof与typeof
2014-02-13 11:04
295 查看
在Javascript里,一切对象(Object和Function)都有内部的属性_proto_,但只Object.prototype._proto_ 为 null,这个属性对于开发人员不可见(Firefox、Chrome浏览器可以访问到,IE不行)。对于Function(函数或方法),创建时还会有一个Prototype,这个“Prototype”才是开发人员经常用到的原型链继承应用。
每当创建一个对象的时候,这个对象的_proto_就会被赋值为这个对象的构造函数的prototype,这样对象的_proto_属性和构造函数的 prototype引用相同的对象,并且一旦对象创建完成,_proto_属性就不会改变。 这样通过对象的_proto_属性,以及_proto_所引用的对象的_proto_属性,就构成了一个_proto_链。 当访问一个对象的属性和方法的时候,js虚拟机正是通过这个_proto_链来查找的。
、
参考:http://www.mollypages.org/misc/js.mp
instanceof
假设有一条这样的语句:A instanceof B;
在上面的语句执行过程中,虚拟机会把B.prototype和A的_proto_链上的节点逐个进行比较,如果找到相等的节点,则返回true,否则返回false。
typeof
会返回六种类型的结果 object function string number booean undefined,是javascript语言实现的一些判定类型的机制。
每当创建一个对象的时候,这个对象的_proto_就会被赋值为这个对象的构造函数的prototype,这样对象的_proto_属性和构造函数的 prototype引用相同的对象,并且一旦对象创建完成,_proto_属性就不会改变。 这样通过对象的_proto_属性,以及_proto_所引用的对象的_proto_属性,就构成了一个_proto_链。 当访问一个对象的属性和方法的时候,js虚拟机正是通过这个_proto_链来查找的。
、
参考:http://www.mollypages.org/misc/js.mp
instanceof
假设有一条这样的语句:A instanceof B;
在上面的语句执行过程中,虚拟机会把B.prototype和A的_proto_链上的节点逐个进行比较,如果找到相等的节点,则返回true,否则返回false。
typeof
会返回六种类型的结果 object function string number booean undefined,是javascript语言实现的一些判定类型的机制。
相关文章推荐
- javascript------探索instanceof执行原理(原型与原型链)
- 深入理解javascript原型和闭包(5)——instanceof
- javascript中的instanceof和typeof区别
- 深入理解javascript原型和闭包(5)——instanceof
- JavaScript 原型总结五 instanceof
- JavaScript 学习之 instanceOf, typeOf 运算符
- javascript 对象及原型继承有关的属性:constructor、prototype、isPrototypeOf、instanceof、in 、hasOwnProperty 等等
- 深入理解javascript原型和闭包(5)——instanceof
- [翻译]JavaScript秘密花园 - Array, Array Constructor, for in loop, typeof, instanceOf
- JavaScript秘密花园 - Array, Array Constructor, for in loop, typeof, instanceOf
- 关于javascript中的typeof和instanceof
- Javascript中的typeof和instanceof
- JavaScript类型判断typeof和instanceof
- 深入理解javascript原型和闭包(5)——instanceof
- 深入理解javascript原型和闭包系列 深入理解javascript原型和闭包(5)——instanceof
- javascript: instanceof 和 typeof 的区别
- JavaScript中typeof和instanceof的区别
- 深入理解javascript原型和闭包(5)——instanceof
- Javascript中typeof与instanceof之间的区别