zoukankan      html  css  js  c++  java
  • 引用类型: Object类型

    TO DO:  此次记录只是为了在脑海里面建立个目录表,详细的用法就没有一字一句的描述出来,遗漏的地方,待我慢慢整理再补上。

    1 创建对象的方式

    》》 使用new操作符后跟Object构造函数
    var apple = new Object();
    
    》》 使用对象字面量表示法
    var apple = {}

    2 访问对象的方式

    》》点表示法
    var apple = {
      color: red,
      size: small
    }
    console.log(apple.color);
    
    》》方括号表示法
    var apple = {
      color: red
      size: small
    }
    console.log(apple.["color"]);
    
    》》这两种方式相比较各自的特点
    
    属性名中包含会导致语法错误的字符时,如apple.["fisrt color"], 使用方括号表示法可解决

    3 对象有哪些默认属性

    * Constructor
    即等于构造函数
    
    * _proto_
    即指向原型对象的指针

    4 对象有哪些默认方法

    * Object.defineProperty()
    修改属性默认的特性
    
    * Object.defineProperties()
    修改多个属性默认的特性
    
    * Object.getOwnPropertyDescriptor()
    取得给定属性的描述符
    
    * hasOwnProperty()
    返回一个布尔值,判断对象是否包含特定的自身(非继承)属性
    
    * toLocalString()
    根据本地时间把 Date 对象转换为字符串,并返回结果
    
    * toString()
    返回的是特定的类型[object 类型]
    
    * valueOf()
    返回值为该对象的原始值

    5 疑问

    JS 原生构造函数和自定义构造函数的区别?

    // Person普通构造函数
    function Person() {
    }
    var man1 = new Person()
    
    // Object原生构造函数
    var man2 = new Object()
    
    man1._proto_  === Person.prototype 
    Person.prototype._proto_ === Object.prototype
    
    man2._proto_  === Object.prototype

    这就是我从指向上面get到它们之间的区别
    此外: 原生的构造函数原型对象上有默认的方法,那么实例也将可以访问到默认方法,相比较自定义构造函数生成的实例就没有什么默认的了

    使用对象字面量创建的对象和new操作符创建的对象有何区别?

    var  apple1 = new Object()
    var  apple2 = {}
    
    apple1._proto_  === Object.prototype
    apple2._proto_  === Object.prototype
    
    我原以为他们指向会有不同,可能是自己了解不够,所以没get到,在理解了原型链之后,发现它们其实真的没啥区别

    最后附上一张原型链的图:

  • 相关阅读:
    【NET CORE微服务一条龙应用】第一章 网关使用与配置
    111
    test
    再来一个测试
    测试博客
    flutter 中的json解析
    关于flutter -app开发过程中的问题及解决方式总结
    使用Mybatis-plus通过自定义Sql查询只有主键为null的问题
    Centos 6中keepalived作为服务启动
    CentOS6 开放、关闭防火墙相关端口命令
  • 原文地址:https://www.cnblogs.com/Tiboo/p/11228505.html
Copyright © 2011-2022 走看看