[JS] 第九课:对象

1. 创建对象

三种创建对象的方式:

//-----1
var programmer=new Object();
//-----2
var programmer={};
//-----3
var programmer=Object.create(Object.prototype);
Object.create()

Object.create(新创建对象的原型对象,添加到新创建对象的属性),最后返回新创建的对象。
如:
在这里插入图片描述

2. 操作对象的属性

var programmer={
	cloth:"T-shirt",(默认可枚举,可更改)
	shoes:"Nike",
	clockIn:function(){
		alert("9:00 AM");
	}
};
console.log(programmer.cloth);
programmer["cloth"]="jacket"; //法1:更改cloth值
console.log(programmer.cloth);
programmer.cloth="sweater";   //法2:更改cloth值
console.log(programmer.cloth);
programmer.habit="play game"; //法1:增加新属性(默认可枚举,可更改)
console.log(programmer.habit);
programmer["hair"]="sparse";  //法2:增加新属性(默认可枚举,可更改)
console.log(programmer.hair);
Object.defineProperty

参考作者Weastsea简书上的文章,点击前往

Object.defineProperties

同时描述对象的多个属性,如:
在这里插入图片描述

3. 属性的检测

  1. in 运算符—检测对象的自有或继承属性
  2. hasOwnProperty()—检查对象的自有属性
  3. propertyIsEnumerable()— 检查自有且可枚举的属性

4. 属性的枚举

  1. for in 语句
    ⚠️可枚举对象的自有或继承属性
  2. Object.keys(obj)
    ⚠️只返回自有属性
var shelf={
	book1:"English",
	book2:"Chinese",
	book3:"Math"
};
console.log(Object.keys(shelf));  //["book1", "book2", "book3"]

5. 属性的复制

Object.assign(目标对象, …源对象)

复制规则

  • 将所有可枚举属性的值从一个或多个源对象复制到目标对象,然后将返回目标对象。
  • 如果目标对象中的属性具有相同的键,则属性将被源中的属性覆盖。后来的源的属性将类似地覆盖早先的属性。

6. 对象原型上的方法

- Object.prototype.constructor

返回构造函数

programmer.constructor;   //Object
- Object.prototype.toString()
programmer.toString(); //[object Object]

使用toString()检测对象类型

var toString=Object.prototype.toString;
toString.call(new Date);   //[object Date]
toString.call(new String);   //[object String]
- Object.prototype.valueof()

返回对象的原始值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值