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

  • 相关阅读:
    scala的泛型浅析
    spark2.0的10个特性介绍
    spark2.0 DataSet操作的一些问题记录
    scala中ClassOf、asInstenceOf、isInstanceOf三个预定义方法分析
    Java 多线程与并发编程专题
    java nio入门
    MySQL索引优化详解
    shiro学习笔记-Subject#login(token)实现过程
    【转】线程八锁
    ReadWriteLock读写锁
  • 原文地址:https://www.cnblogs.com/mrzhu/p/7805648.html
Copyright © 2011-2022 走看看