您的位置:首页 > Web前端 > JavaScript

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语言实现的一些判定类型的机制。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: