JavaScript对象

通过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<bookList.length;i++){
	console.log(bookList[i]);
	console.log(`书名:${bookList[i].bookTitle}----作者:${bookList[i].name}`);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值