通过object方式创建
let person=new Object();
person.name="小高";
person.age=20;
person.job="Student";
person.S=function(){
console.log(this.name); //这里的this指的是当前对象 person
}
person.S(); // 方法的调用 -->鲁班
通过对象字面量的方式调用:(key :value)
let person={
name: "小高",
age:20,
job:"Student",
S:function(){
console.log(this.age);
}
}
// 通过对象名.属性的方式调用
console.log(person.name); //小高
person.S(); //20
//通过对象名['属性']的方式调用
console.log(preson['name']); //小高
修改数据:增 删 改
let person={
name: "小高",
age:20,
job:"Student",
S:function(){
console.log(this.age);
}
}
//修改数据
person.name="小白";
console.log(person.name); //小白
//删除数据
delete person.name;
//增加数据
person.habby=['游戏','旅游'];
遍历对象: for in
let person={
name:"小高",
age:20,
job:"Student"
};
for(let i in person){
console.log(person[i]);
}
属性的类型:
数据属性:
/*数据属性
configurable:可配置
Enumerable:可枚举(就是可以遍历)
writable:可写,可修改
value:属性的值
*/
let obj={};
Object.defineProperty(obj,'name',{
value:'鲁班',
writable:true
})
obj.name="小高";
console.log(obj); //小高
访问器属性:
/*
get: 获取函数
set: 设置函数
*/
let obj={
age:30;
}
Object.defineProperty(obj,'name',{
get(){
if(this.age>30){
return '哈哈哈';
}
return "小高";
},
set(newValue){
console.log("你设置了一个值:"+newValue);
}
})
obj.name="吴彦祖";
console.log(obj.name);
定义多个属性:
let info={}
Object.defineProperties(info,{
name:{
value:"小高"
},
age:{
value:20
},
job:{
value:"teacher"
}
})
console.log(info);
检测属性: in *** 作符
let obj={myName:"小高"};
console.log('myName' in obj); //true myName属于obj
console.log('age' in obj); //false age 不属于obj
判断当前属性是不是对象自身的自有属性 :hasOwnProperty
let obj={myName:'鲁班',age:20};
console.log(obj.hasOwnproperty('myName')); // true
区别(暂时了解):
let obj={myName:'鲁班',age:30};
Object.prototype.sayName="hello world"; //在原型上定义属性
console.log(obj.sayName); //hello World
console.log('sayName' in obj); //true
console.log(obj.hasOwnProperty('sayName')); //false
对象安全防护: 对象扩展 对象密封 对象冻结
let obj={name:"小高"};
Object.preventExtensions(obj); //对象扩展 (不能添加)
Object.seal(obj); //对象密封 (不能删除)
Object.freeze(obj); //对象冻结 (不能修改)
console.log(obj.name); // 小高
实际应用:对象
案例:
let bookList=[
{
id:001,
bookTitle:'青蛙',
name:"张三"
},
{
id:002,
bookTitle:'蜜蜂',
name:"李四"
},
{
id:003,
bookTitle:'犀牛',
name:"王五"
},
{
id:004,
bookTitle:'蜘蛛',
name:"赵六"
}
]
for(let i=0;i
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)