zoukankan      html  css  js  c++  java
  • js之Object属性封装

    在object.create出现之前,我们实现继承一般使用:

    function base(){}

    function children(){}

    //实现children继承base

    (function(){
      var Super = function(){};
      Super.prototype = carvasCloth.prototype;
      children.prototype = new Super();
    })();

    而object.create源代码的实现逻辑是:

    Object.create = function (o) {

             var F = function () {};

             F.prototype = o;

             return new F();

     };

    所以我们实现继承可以简写为:

    var chidlren = Object.create(base.prototype);

    Object的其他属性:

    Object.defineProperty:Object.defineProperty(chidlren ,"name",{

    value:"name",

    writable:true,//是否可写

    enumable:true,//是否可枚举

    configurable:true,//设置为false后,则不可在重新编辑

    get:function(){},

    set:function(){}

    })

    Object.defineProperties:设置多个对象

    Object.getOwnPropertyDescriptor(obj,attr):返回指定对象指定属性的定义,不会返回原型链上的属性

    Object.getOwnPropertyNames:返回指定对象的所有属性(包括不可枚举的属性),不会返回原型链上的属性,

    object.hasOwnProperty(attr):判断对象是否包含某属性,不考虑原型属性

    Object.getPrototypeOf(object):返回对象的原型对象

    注:本文中Object指的是Object对象自身,object指的是自定义对象 attr指的是属性

  • 相关阅读:
    spring+hibernate常见异常集合
    Java报错原因汇总
    java常见异常集锦
    连接池 druid(阿里巴巴的框架)
    企业支付宝账号开发接口实现
    Maven使用常见问题整理
    MySQL的分页
    Struts2中通配符的使用
    Centos下安装mysql 总结
    将linux用在开发环境中
  • 原文地址:https://www.cnblogs.com/mrzhu/p/7805648.html
Copyright © 2011-2022 走看看