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指的是属性

  • 相关阅读:
    拯救公主
    爱情之路
    无聊的会议
    对拍检验程序
    TCP三次握手
    OA系统走过的的坑之部门岗位管理
    蓝屏警告
    三级联动
    Ajax二级联动
    近期疑惑和总结
  • 原文地址:https://www.cnblogs.com/mrzhu/p/7805648.html
Copyright © 2011-2022 走看看