码迷,mamicode.com
首页 > 其他好文 > 详细

对象的方法

时间:2020-07-19 23:30:45      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:code   free   ons   prototype   aaa   rabl   obj   create   type   

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
  1. 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"));

对象的方法

标签:code   free   ons   prototype   aaa   rabl   obj   create   type   

原文地址:https://www.cnblogs.com/94-Lucky/p/13340879.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!