求助:怎么把js对象转为字符串
1个回答
展开全部
toString()
使用对象的toString函数把对象转化为字符串。
// plain object
var obj = {};
obj.toString(); // 返回"[object Object]"
// 基本数据封装类
var num = new Number(2.2);
num.toString(); // 返回"2.2"
// 数组
var arr = [1,2,3];
arr.toString(); // 返回"1,2,3"
// 正则对象
var reg = new RegExp('\\d');
reg.toString(); // 返回"/\d/"
// 自定义对象
function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.toString = function () {
return 'name is ' + this.name + 'and age is ' + this.age;
};
var p = new Person('Scott', 31);
p.toString(); // 返回"name is Scott and age is 31"
JSON.stringify
使用json序列化的方式把对象转换为字符串,该方式会把一个对象中所有标记为
enumerable的属性序列化为json格式的字符串。
// plain object
var obj = {name: 'Scott', age: 31};
JSON.stringify(obj); // 返回"{"name":"Scott","age":31}"
// 基本数据封装类
var num = new Number(2.2);
JSON.stringify(num); // 返回"2.2"
// 数组
var arr = [1,2,3];
JSON.stringify(arr); // 返回"[1,2,3]"
// 自定义类型
function Person(name, age, maritalStatus) {
this.name = name;
this.age = age;
// 由于婚姻状况是隐私的属性,不希望序列化字符串的时候暴露给他人,因此这里设置属性为不可枚举的
Object.defineProperty(this, 'maritalStatus', {
enumerable: false,
configurable: false,
writable: true,
value: maritalState || 'unknown'
});
this.maritalStatus = maritalStatus;
}
var p = new Person('Scott', 31, 'married');
// 序列化的时候是没有maritalStatus的
JSON.stringify(p); // 返回"{"name":"Scott","age":31}"
// 但是maritalStatus确实真实存在于对象中的
p.maritalStatus; // 返回"married"
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询