typeof、instanceof与constructor

typeof关键字返回一个表达式数据类型的字符串,返回结果为js基本的数据类型,包括number,boolean,undefined,string,function,object.

typeof(1);//"number"

typeof(true)//"boolean"

typeof(undefined)//"undefined"

typeof("1");//"string"

typeof(function(){});//"function"

typeof({});//"object"

typeof([]);//"object"

typeof(new Date());//"object"

instanceof运算符用来判断一个构造函数的prototype对象是否存在于被检索对象的原型链上

function a(){};var b=new a();b instanceof a;//true

b.__proto__===a.prototype

Function instanceof Function;//true

Function.prototype===Function.__proto__

Object instanceof Object;//true

Object.prototype===Object.__proto__.__proto__

constructor为对象的构造函数的引用。

函数都有prototype属性,prototype上面有个constructor指向当前函数,当以构造函数创建对象时,将函数的prototype赋给了对象__proto__。

function a(){};

a.prototype.constructor===a;//true

var b=new a();

b.__proto__===a.prototype;//true

指向顺序

b.constructor=b.__proto__.constructor=a.prototype.constructor=a;


虚像:

评论 阅读