Appearance
对象
对象字面量
如果你想在对象里添加跟变量名一样的属性,并且属性的值就是变量表示的值就可以直接在对象里加上这些属性
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
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
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
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
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
2
3
4
5
6
7
8
9
10
11
12