js中提供给了我们多个内建对象
如object、string、array等等
我们今天讲的就是object
对象是一个只带有属性及方法的特殊数据类型
object的创建方法
通过的new关键字创建对象
let app = new Object();
// 添加属性
app.name="宋科";
// 添加方法
app.box=function ()
{
console.log(this.name+"你好呀!")
}
console.log(app);
// 输出结果
// Object
// {
// name:宋科;
// box:box();
// }
通过字面量来创建对象
let ansy =
{
name:"宋科",
xingbie:"男",
}
如何访问对象
// 访问对象
// 1.点语法来访问对象内的属性
console.log(ansy.name);
// 2.通过中括号来访问
console.log(ansy["name"]);
// 输出结果均为宋科
注意:
- 中括号可以以变量作为属性名,但点语法不可以
- 中括号可以以数字作为属性名,但点语法不可以
当我们用点语法访问数字属性时,编辑器会自动报错
console.log(ansy.110);
中括号不会
console.log(ansy["110"]);
访问器是什么
- 访问器可以说是一件衣服,可以将某些方法和属性隐藏起来,不给外界访问
- 同时可以让我们快速的获取或设置一个值
- 即可存储值也可以存储语句块
get与set的使用方法
- get主要负责读取属性,无法改写属性
- set主要负责改写属性,无法获取属性
var p={
_age:18,
读取
get age(){
return this._age;
},
set age(val){
this._age=val;
}
}
p.age=20;
调用方法
console.log(p["age"]);
为什么set与get同名,没有打印错误,因为set里面根本没有值
var p={
_age:18,
get age(){
return this._age;
},
改写作用
set age(value){
this._age=value;
}
}
也可以用中括号法调用
p["age"]=8;
console.log(p["_age"]);
// 输出结果味8
value的作用是设置值,同时set:function(){}也可以,但俩者会起冲突