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到,在理解了原型链之后,发现它们其实真的没啥区别

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

  • 相关阅读:
    列表,字典,元组,集合内置方法
    数据类型内置方法(1)
    if判断与while、for循环语句
    与用户交互、格式化输出、基本运算符
    执行python程序的两种方式
    # 操作系统与编程语言分类
    drf框架2-序列化与反序列化
    drf框架1
    前端-vue路由传参、axios前后台交互、cookie设置
    前端-vue的配置和使用
  • 原文地址:https://www.cnblogs.com/Tiboo/p/11228505.html
Copyright © 2011-2022 走看看