js实例--js对象

 

创建demo

  • 构造函数;
  • 原型;

继承:demo1demo2;

  • 在内部对要继承的构造函数使用apply/call: oldObject.apply(this,arguments);
  • 使用原型继承: newObject.prototype = new oldObject();

扩展对象: demo

  • 直接添加;
  • Object.defineProperty(obj,'attr',{}) / Object.defineProperties(obj,{'attr1':{},'attr2':{}});
    • value / set / get
    • writable:是否可修改 ;
    • configurable:是否可删除/修改;
    • enumberable:是否可迭代;

限制扩展对象:目前都是在严格模式下进行的,  'use strict' demo

  • Object.preventExtensions(obj);  //限制添加新属性;
  • Object.seal(obj);                     //限制添加新属性;限制修改属性描素符;                            //判断:Object.isSealed(obj)
  • Object.freeze(obj);                //限制添加新属性;限制修改属性描素符;限制修改当前属性;    //判断:Object.isFrozen(obj)

判断属性:                                                 

  • for/in                                              //枚举所有可枚举的属性,不论是否是自有的;  
  • Object.getOwnPropertyNames(obj)    //数组形式返回自有属性,不论是否可枚举;
  • Object.keys(obj);                           //数组形式返回所有可枚举且自有的属性;
  • obj.hasOwnProperty(attr);               //判断是否是自有的属性;
  • obj.propertyIsEnumerable(attr);      //判断自有属性是否可枚举;
  • in                                                 //判断属性,包括继承和不可枚举;

对象方法: demo

  • 注意对象方法的内敛方法引用this为全局的this
    • 可以通过最后绑定'.bind(this)'来进行改变this;
    • 也可以使用‘self=this’ 的方法替代;
  • 改变作用域:
    • bind(this):绑定之后还是一个方法,执行的时候改变作用域;
    • call(this,arr1,arr2)/apply(this,[]) : 绑定之后方法会立即调用;
  • 链式方法

在DOM中使用://设置一个对象,添加用到的方法,属性

  • 读取元素内容:demo

你可能感兴趣的:(js对象)