zoukankan      html  css  js  c++  java
  • JavaScript Object 对象 再解(一)

    Object 是 JavaScript 中最复杂的类型,也是平时我们开发当中用的最多的。

    JavaScript我们用到最多的对象,有下面这么几个

    • Number

    • String

    • Boolean

    • Symbol(稍微少一点啦)

    • 事实上,JavaScript 的’类’仅仅是运行时对象的一个私有属性,而 JavaScript 中是无 法自定义类型的。

      3 与 new Number(3) 是完全不同的

      3
      '3'
      new Number(3)
      
      s
      's'
      new String(s)
      
      true
      false
      new Boolean(true)
      new Boolean(false)
      

      Number、String 和 Boolean,三个构造器是两用的,当跟 new 搭配时,它们产生对 象,当直接调用时,它们表示强制类型转换。

      Symbol 函数比较特殊,直接用 new 调用它会抛出错误,但它仍然是 Symbol 对象的构 造器。

      JavaScript 语言设计上试图模糊对象和基本类型之间的关系, 我们日常代码可以把对象的 方法在基本类型上使用,比如:

      console.log('hello'.charAt(3))
      console.log('hello'.charCodeAt(3))
      String.fromCharCodeAt('hello'.charCodeAt(3))
      

      甚至我们在原型上添加方法,都可以应用于基本类型,比如以下代码,在 Symbol 原型上 添加了 hello 方法,在任何 Symbol 类型变量都可以调用。

      Symbol.prototype.hello = () => console.log("hello")
      var a = Symbol("a")
      console.log(typeof a)
      a.hello()
      

      然后,有个问题,问题是:为什么给对象添加的方法能用在基本类型上?

      答案就是: . 运算符的功劳。 该运算符提供了装箱操作,它会根据我们使用的基本类型构造一个临时的对象,使得我们能够在基础类型上调用该对应对象的方法。

  • 相关阅读:
    编程实现折半法查找
    浅谈C++多态性
    纯虚函数的使用汇总
    虚函数如何实现多态 ?
    重载(overload),覆盖(override),隐藏(hide)的区别
    Qt入门之常用Qt标准对话框之QMessageBox
    Qt5学习笔记(5)——列表框QListWidget类
    python 文件的方法
    python---while循环
    python ---strip()方法,split()方法,删除字符串开头或结尾,字符串分隔
  • 原文地址:https://www.cnblogs.com/ssaylo/p/13140718.html
Copyright © 2011-2022 走看看