对象的方法
Posted 94-lucky
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对象的方法相关的知识,希望对你有一定的参考价值。
1.freeze 冻结
特点:冻结属性,不能冻结引用地址,想要全部冻结,使用const
var obj={a:1,b:2};
Object.freeze(obj);
obj.a=3;
obj.c=3;
console.log(obj); //{a:2,b:2}
obj={a:3,b:4};
console.log(obj)//{a:3,b:4}
var OBJ={a:1,b:2};
obj.a=3;
OBJ={a:3,b:4};
console.log(OBJ) //报错
class Methods{
static random(){
console.log("aaa");
}
}
Object.freeze(Methods);
Methods.random=function(){
console.log("bbb");
}
Methods.random(); // aaa 对象中的静态方法也能冻结
2.is 判断是否相等 相当于强等===
console.log(Object.is(0.1+0.2,0.1+0.2)); //true
console.log(0.1+0.2===0.3); //false
console.log([1,2,3]===[1,2,3]); //false
console.log(Object.is([1,2,3],[1,2,3])); //false
3.create 以谁为原型创建 defineProperty 原型链 所有继承的方法都可以使用原型链下的属性
var obj={a:1,b:2};
var obj1=Object.create(obj); //以obj为原型创建obj1
Object.defineProperty(obj1,"c",{
value:3
})
console.log(obj1) //3
- a in b 可以判断是否是对象的对象属性或者对象的原型链属性
console.log("c" in obj1); //true
5.hasOwnProperty 判断是否是对象的对象属性
console.log(obj1.hasOwnProperty("c")); //true
6.isPrototypeOf 判断某个对象是否是另外一个对象的原型链
console.log(obj.isPrototypeOf(obj1)) //true
7.instanceof 判断该对象的原型链上是否有这个类型
var arr=[1,2,3];
console.log(arr instanceof Array); //true
console.log(arr instanceof Object); //true 数组也是对象类型
8.typeof 判断类别
class Box extends Array{
constructor(){
super();
}
}
let b=new Box();
console.log(typeof b); //object
9.constructor 判断该对象的抽象类
console.log(b.constructor===Box); //true
10.propertyIsEnumerable 判断对象下某个属性是否可以枚举
console.log( obj.propertyIsEnumerable("b"));
以上是关于对象的方法的主要内容,如果未能解决你的问题,请参考以下文章