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代码
//自定义函数(类)
将对象转换成字符串时:
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代码
//自定义函数(类)
相关新闻>>
- Javascript 兼容 IE6、IE7、FF 的“加入收藏”“设为首页”
- 好好学一遍JavaScript 笔记(一)——基础中的基础
- 好好学一遍JavaScript 笔记(二)——encode、数组、对象创建
- 好好学一遍JavaScript 笔记(三)——StringBuffer、prototype
- 好好学一遍javaScript 笔记(四)——Attribute、HTML元素、文档碎
- 好好学一遍JavaScript 笔记(五)——正则表达式基础
- 好好学一遍JavaScript 笔记(六)——正则表达式基础二
- 好好学一遍JavaScript 笔记(七)——RegExp对象与常用正则
- 好好学一遍JavaScript 笔记(八)——冒泡型事件、捕获型事件
- JavaScript详解
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>