Object.keys()

  • 得到一个新数组
    1. let obj = {'a':0,'b':1,'c':2}
    2. Object.keys(obj) //['a','b','c']
    3. Object.keys(obj).forEach(key=>{
    4. console.log(key)
    5. //'a'
    6. //'b'
    7. //'c'
    8. })

Object.assign()

  • 浅拷贝,复制对象的可枚举属性 ```javascript const target = { a: 1 };

const source1 = { b: 2 }; const source2 = { c: 3 };

Object.assign(target, source1, source2); target // {a:1, b:2, c:3}

  1. <a name="EgEjE"></a>
  2. #### call,apply,bind
  3. - 改变this指向,如果没有提供obj参数,那么Global对象被用于obj
  4. - 存在的意义:实现(多重)继承
  5. - 只能继承父类函数的方法和属性,而不能继承原型对象的方法和属性
  6. ```javascript
  7. //A对象应用B对象的方法:
  8. B.call(A, args1,args2);
  9. B.apply(A, arguments);
  10. B.bind(A, args1,args2)();
  11. var name='小张',age=17;
  12. var obj={
  13. name:'小刘',
  14. objAge:this.age,
  15. myFun:function(){
  16. console.log(this.name + '年龄:' + this.age)
  17. },
  18. myFun1:function(fm,t){
  19. console.log(this.name + '年龄:' + this.age,'来自'+fm+'去往'+t);
  20. }
  21. }
  22. var db={name:'德玛',age:99}
  23. obj.myFun() //小刘年龄:undefined
  24. obj.myFun.call(); //小张年龄:17 --obj.myFun.apply();obj.myFun.bind()();结果亦是
  25. obj.myFun.call(db) //德玛年龄:99 --obj.myFun.apply(db);obj.myFun.bind(db)();结果亦是
  26. obj.myFun.call(db,'江西','深圳') //德玛年龄:99 来自江西去往深圳
  27. obj.myFun.apply(db,['江西','深圳']) //德玛年龄:99 来自江西去往深圳
  28. obj.myFun.bind(db,'江西','深圳')() //德玛年龄:99 来自江西去往深圳
  29. obj.myFun.apply(db,['江西','深圳'])() //德玛年龄:99 来自江西,深圳去往undefined