JavaScript对象的类型转换

来源:未知 责任编辑:责任编辑 发表时间:2013-12-01 14:20 点击:
在JavaScript中,对象转换成基本数据类型或者字符串用到了toString() 方法和alueOf()方法。
 
 
 
将对象转换成字符串时:
 
1.调用对象的toString()方法,将对象转换成返回的字符串,如果方法返回其它基本数据类型,则会自动转换成字符串;
 
2.如果对象没有toString()方法,或方法返回的不是基本数据类型,那么以相同方式调用valueOf()方法;
 
3.同样,如果valueOf()方法不存在或者返回值不是基本数据类型,则提示错误(IE可能不会报错);
 
Js代码 
//自定义函数(类)  
function myObject(objectName)  
{  
    this.objectName = objectName;  
}  
var myObj = new myObject("MyObj");  
 
//正常情况,首先调用toString()方法  
myObject.prototype.toString = function(){return 123;};  
myObject.prototype.valueOf = function(){return 321;};  
alert(myObj);   //结果为123  
 
//toString()方法返回不正确类型,调用valueOf()方法  
myObject.prototype.toString = function(){return new Date();};  
myObject.prototype.valueOf = function(){return 321;};  
alert(myObj);   //结果为321  
 
//toString()方法不存在,valueOf()方法返回不正确类型  
myObject.prototype.toString = undefined;  
myObject.prototype.valueOf = function(){return new Date();};  
alert(myObj);   //提示错误(IE8中不报错并提示[Object]) 
 
//自定义函数(类)
function myObject(objectName)
{
       this.objectName = objectName;
}
var myObj = new myObject("MyObj");
 
//正常情况,首先调用toString()方法
myObject.prototype.toString = function(){return 123;};
myObject.prototype.valueOf = function(){return 321;};
alert(myObj);  //结果为123
 
//toString()方法返回不正确类型,调用valueOf()方法
myObject.prototype.toString = function(){return new Date();};
myObject.prototype.valueOf = function(){return 321;};
alert(myObj);  //结果为321
 
//toString()方法不存在,valueOf()方法返回不正确类型
myObject.prototype.toString = undefined;
myObject.prototype.valueOf = function(){return new Date();};
alert(myObj);  //提示错误(IE8中不报错并提示[Object])
 
类似的,将对象转换成基本数据类型时也会作相应处理,但是会先调用valueOf() 函数而不是toString()。
 
将对象转换成基本数据类型时:
 
1.调用对象的valueOf() 方法,将对象转换成返回的基本数据类型;
 
2.如果对象没有valueOf() 方法,或方法返回的不是基本数据类型,那么以相同方式调用toString()方法;
 
3.同样,如果toString()方法不存在或者返回值不是基本数据类型,则提示错误;
 
 
 
Js代码 
//自定义函数(类)  
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Gb2312转utf-8编码的方法(vbs+js)
  • 如何使用Ajax技术开发Web应用程序(1)
  • js跳转路径问题
  • JavaScript模仿桌面窗口
  • 用js检测两个线段是否相交
  • 运用JavaScript构建你的第一个Metro式应用程序(on Windows
  • 我知道的JavaScript -- 设计模式(桥接)应用之 – 验证器
  • 我是如何去了解jquery的(六),案例之幻灯片轮换
  • Jquery封装幻灯片效果
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1