欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > > 文章正文

面向对象--利用toString做类型判断,面向对象tostring

来源: javaer 分享于  点击 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


};

相关文章

    暂无相关文章

用户点评