面向对象--利用toString做类型判断,面向对象tostring
分享于 点击 45899 次 点评:170
面向对象--利用toString做类型判断,面向对象tostring
1. 了解toString
toString() : 系统对象下面都是自带的 , 自己写的对象都是通过原型链找object下面的
解释一下上面这句话,假如是arr的话,则toString在Array.pro下面。假如是a1的话toString在Object.pro下面。
不管是系统对象还是自己写的面向对象,都可以找到toString方法,如下
var arr = [];
alert( arr.toString );//可以找到
alert( arr.toString == Object.prototype.toString ); //false
function Aaa(){}
var a1 = new Aaa();
alert( a1.toString );//可以找到
alert( a1.toString == Object.prototype.toString ); //true
2. toString的作用
toString() : 把对象转成字符串
var arr = [1,2,3];
alert( arr.toString() ); //'1,2,3'
也可以自己重写toString方法
var arr = [1,2,3];
Array.prototype.toString = function(){
return this.join('+');
};
alert( arr.toString() ); //'1+2+3'
利用toString转成不同进制的数
var num = 255;
alert( num.toString(16) ); //'ff'
利用toString做类型的判断
var arr = [];
alert( Object.prototype.toString.call(arr) == '[object Array]' ); //'[object Array]'
三种判断元素类型的办法比较,最好的是toString。因为如下例子中,其实是跨页面了,前面两种都不能很好的判断,第三种判断正确。
window.onload = function(){
var oF = document.createElement('iframe');
document.body.appendChild( oF );
var ifArray = window.frames[0].Array;
var arr = new ifArray();
//alert( arr.constructor == Array ); //false
//alert( arr instanceof Array ); //false
alert( Object.prototype.toString.call(arr) == '[object Array]' ); //true
};
相关文章
- 暂无相关文章
用户点评