2.对象的扩展方法.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. // 1.Object.is() 比较两个值是否严格相等(===)
  2. console.log(Object.is(120,120))
  3. console.log(Object.is(NaN,NaN))
  4. //2.Object.assign() 对象合并:后面的对象会将前一个相同属性覆盖,其余合并
  5. let obj1 = {
  6. name:"Lucy",
  7. age:18,
  8. sex: "女"
  9. };
  10. let obj2 = {
  11. names:'LiLi',
  12. ages: 28
  13. }
  14. console.log(Object.assign(obj1,obj2));
  15. // 3.Object.setPrototypeOf 设置原型对象
  16. // 4.Object.getPrototypeOf 获取原型对象
  17. const school = {
  18. name:'MySchool'
  19. }
  20. const city = {
  21. area:['北京','上海','哈尔滨']
  22. }
  23. Object.setPrototypeOf(school,city);
  24. console.log(Object.getPrototypeOf(school),'school')
  25. console.log(school)
  26. // es8对象扩展方法
  27. // 5.Object.keys() 返回给定对象所有可枚举的键值数组
  28. var person = {
  29. name:'我的名字',
  30. age: 33
  31. }
  32. console.log(Object.keys(person),'keys')
  33. // 6.Object.values() 返回给定对象所有可枚举的属性值数组
  34. console.log(Object.values(person),'values')
  35. // 7.Object.entries() 返回给定对象自身可遍历的[key,value]的数组
  36. console.log(Object.entries(person),'entires')
  37. // 8.Object.getOwnPropertyDescriptors() 返回指定对象所有自身属性的描述对象
  38. // 9.Object.create({},{})
  39. console.log(Object.getOwnPropertyDescriptors(person));
  40. const obj = Object.create(null,{
  41. name: {
  42. value: '阿珍',
  43. writable: true
  44. },
  45. age: {
  46. value: '40',
  47. writable: false,
  48. configurable:false,
  49. enumerable: false
  50. }
  51. })
  52. console.log(Object.getOwnPropertyDescriptors(obj));