一、自定义对象的定义方式
1. 标准定义
1. 定义方式:
实例化 new Object()
2. 设置属性:
方法一 : stu.name=“毛豆”; (对象.属性=属性值)
方法二 : stu[“job”]=“tea”;(对象[键]=属性值)
var stu=new Object(); // 定义方式
stu.name="毛豆"; //设置属性
stu["job"]="tea"; //设置属性
stu.eat=function (){ //设置方法
return this.name+"啥都吃!"; //this 指代当前的对象
}
2. 简化定义
定义方式:
var student = {} ;
var students={
name:"毛豆",
eat:function (){
return this.name+"啥都吃!";
}
};
students["job"]="tea";
3. 构造函数定义对象
定义方式:
步骤 1: 定义一个构造函数
步骤 2: 实例化构造函数
function Person(){
this.name = "张三";
this.sex = "男";
this.getname = function () {
return this.name;
};
}
var per = new Person();
二、自定义对象中的 get set 访问器
set 访问器是用来给对象定义属性的,get访问器是用来获取属性的,有两种用法:
用法1:在对象内部定义属性,
用法2:在对象后面定义属性。
方法一:对象内部定义
var person1={
firstname:"张",
lastname:"三",
get sex(){
console.log("获取sex属性值");
return sex;
},
set sex(s){
console.log("给sex属性赋值");
sex=s;
}
};
person1.sex=20; // 执行属性赋值的时候自动执行对象里面的set访问器
console.log(person1.sex); // 获取属性时自动执行对象里面的get访问器
方法二:对象下面定义
var person2 = {
firstname: "张",
lastname: "三",
age: 20
};
Object.defineProperty(person2, "sex", { // 使用Object里面的这个方法添加属性
get: function () {
console.log("获取属性值");
return sex;
},
set: function (s) {
console.log("设置属性值");
sex = s;
}
});
person2.sex = 30;
console.log(person2.sex);
三、JSON和自定义对象的区别
区别 | 含义 | 表现形式 | 相互转换 |
---|---|---|---|
JSON | 仅仅是一种数据格式 | 1. 键值对方式,键必须加双引号 2. 值只能是数值(十进制),字符串,布尔值,数组,对象,不能是方法函数 3. 最后一个值后面不能有逗号 | Json字符串转换成JS对象的方法:JSON. parse(JsonStr); (不兼容IE7) |
Javascript对象 | 表示类的实例,一种JS的引用类型 | 1. 键值对方式,键可以加双引号或单引号,也可以不加引号 2. 值可以是数值,字符串,布尔值,对象,方法函数中的任意值 3. 可以有逗号 | JS对象转换成Json字符串:JSON. stringify(JsObj); |