JavaScript typeof()与instanceof()的区别
2012-04-07 13:50
591 查看
<script language="javascript">
/*
* typeof()来判断对象类型
* 对象,数组,null,返回值是object.
* 未定义,变量不存在,返回值是undefined.
*/
alert(typeof(123)); // 返回"number"
alert(typeof("123")); // 返回"string"
alert(typeof(true)); // 返回"boolean"
alert(typeof(new Object())); // 返回"object"
alert(typeof(new Function(""))); // 返回"function"
alert(typeof(undefined)); // 返回"undefined"
</script>
<script language="javascript">
/*
* instanceof()返回一个boolean值,指出对象是否是特定类的一个实例.
* 用来检测6种基本类型之一的object是不是某一对象(构造方法)产生的实例,回溯原型链.
* instanceof的内部机制是:每个实例都有_proto_隐藏属性,instanceof的时候会拿实例的_proto_属性与构造函数的prototype比较是否相同,js虚拟机正是通过这个_proto_链来查找的.
*/
var a = function () {};
var b = function () {};
b.prototype = new a;
var c = new b;
var d = new a;
alert(c instanceof a); // 返回true
alert(d instanceof a); // 返回true
alert(a instanceof Function); // 返回true
alert({} instanceof Function); // 返回false
a.prototype = {}; // 改变原型链
alert(c instanceof a); // 返回false
alert(d instanceof a); // 返回false
</script>
/*
* typeof()来判断对象类型
* 对象,数组,null,返回值是object.
* 未定义,变量不存在,返回值是undefined.
*/
alert(typeof(123)); // 返回"number"
alert(typeof("123")); // 返回"string"
alert(typeof(true)); // 返回"boolean"
alert(typeof(new Object())); // 返回"object"
alert(typeof(new Function(""))); // 返回"function"
alert(typeof(undefined)); // 返回"undefined"
</script>
<script language="javascript">
/*
* instanceof()返回一个boolean值,指出对象是否是特定类的一个实例.
* 用来检测6种基本类型之一的object是不是某一对象(构造方法)产生的实例,回溯原型链.
* instanceof的内部机制是:每个实例都有_proto_隐藏属性,instanceof的时候会拿实例的_proto_属性与构造函数的prototype比较是否相同,js虚拟机正是通过这个_proto_链来查找的.
*/
var a = function () {};
var b = function () {};
b.prototype = new a;
var c = new b;
var d = new a;
alert(c instanceof a); // 返回true
alert(d instanceof a); // 返回true
alert(a instanceof Function); // 返回true
alert({} instanceof Function); // 返回false
a.prototype = {}; // 改变原型链
alert(c instanceof a); // 返回false
alert(d instanceof a); // 返回false
</script>
相关文章推荐
- javascript typeof 和 instanceof 的区别和联系
- javascript typeof 和 instanceof 的区别和联系[轉]
- JavaScript instanceof和typeof的区别
- javascript typeof 和 instanceof 的区别和联系
- JavaScript中typeof,instanceof,hasOwnProperty,in的用法和区别
- JavaScript中instanceof与typeof运算符的用法及区别详细解析
- JavaScript 中typeof与instanceof的区别
- Javascript 中 typeof 和 instanceof 的区别
- javascript中的instanceof和typeof区别
- JavaScript中instanceof与typeof运算符的用法及区别详细解析
- javascript : instanceof和typeof的区别
- javascript: instanceof 和 typeof 的区别
- javascript之 typeof 和 instanceof 区别
- Javascript typeof与instanceof的区别
- Javascript中typeof与instanceof之间的区别
- JavaScript中instanceof与typeof运算符的用法及区别详细解析
- [JavaScript]typeof 与 instanceof 的区别
- javascript中typeof和instanceof的区别
- JavaScript中typeof,instanceof,hasOwnProperty,in用法区别
- javascript--- hasOwnProperty、instanceof 、typeof的区别