Skip to content
On this page

对象

对象字面量

如果你想在对象里添加跟变量名一样的属性,并且属性的值就是变量表示的值就可以直接在对象里加上这些属性

javascript
let name = 'wjh';
let age = 8;
let getName = function(){
		console.log(this.name)
}
let person ={
		name,
    age,
    getName
}
person.getName();
1
2
3
4
5
6
7
8
9
10
11

Object.is

对比两个值是否相等

javascript
console.log(Object.is(NaN,NaN));
1

7.3 Object.assign

把多个对象的属性复制到一个对象中,第一个参数是复制的对象,从第二个参数开始往后,都是复制的源对象

javascript
var nameObj = {name:'wjh'}
var ageObj = {age:8};
var obj = {};
Object.assign(obj,nameObj,ageObj);
console.log(obj);

//克隆对象
function clone(obj){
	return Object.assgin({},obj);
}
1
2
3
4
5
6
7
8
9
10

Object.setPrototypeOf

将一个指定的对象原型设置为另一个对象或者 null

javascript
var obj1 = {name:'wjh1'};
var obj2 = {name:'wjh2'};
var obj = {};
Object.setPrototypeOf(obj,obj1);
console.log(obj.name);
console.log(Object.getPrototypeOf(obj));
Object.setProtoypeOF(obj,obj2);
console.log(obj.name);
console.log(Object.getPrototypeOf(obj));
1
2
3
4
5
6
7
8
9

proto

直接对象表达式中设置 prototype

var obj1 = {name:'wjh'};
var obj3 = {
	_proto_:obj1
}
console.log(obj3.name);
console.log(Object.getPrototypeOf(obj3));
1
2
3
4
5
6

super

通过 super 可以调用 protype 上的属性或方法

javascript
let person ={
	eat(){
  	return 'milk';
  }
}
let student = {
	_proto_:person,
  eat(){
  	return super.eat()+'bead'
  }
}
console.log(student.eat());
1
2
3
4
5
6
7
8
9
10
11
12
沪ICP备20006251号-1