zoukankan      html  css  js  c++  java
  • 【《你不知道的JS(中卷①)》】三、原生函数

    三、原生函数:

    ​ JS中有许多内建函数(built-in function),也叫原生函数(native function)。

    • String()
    • Number()
    • Boolean()
    • Array()
    • ...
    • Symbol()

    ​ JS中的原生函数看起来和Java等面向对象语言中的构造函数十分相似,都可以由new来调用。但是不同的是,

    var a = new String("abc");
    typeof a;  // object
    a instanceof String;  // true
    Object.prototype.toString.call(a);  // [object String]
    

    ​ JS中“构造函数”创建出来的是封装了基本类型值(如“abc”)的封装对象。(注:在上卷②原型那一章中具体介绍过)。

    一)、内部属性:

    ​ 所有typeof 为 object的对象,都包含一个内部属性 [[Class]],可以通过 Object.prototype.toString.call()来访问。

    二)、封装与拆封:

    封装:“构造函数”

    拆封:valueOf

    实际上需要用到封装对象才可以使用的方法或封装对象的基本类型值时,JS会进行隐式封装、拆封(强制类型转换)

    三)、原生函数作为构造函数:

    ​ 就像封装和拆封一样,一般不建议使用构造函数。可以直接通过字面量来创建对象,必要时会进行强制类型转换。

    1、Symbol:

    ​ ES6中引入了Symbol,用在给对象属性命名,由于符号是具有唯一性的特殊值,因此不容易导致重名。

    ​ ES6中有一些预定义符号,以Symbol的静态属性形式出现,如 Symbol.create、Symbol.iterator等:

    obj[Symbol.iterator] = function(){/*..*/};
    

    2、原生原型:

    ​ 原生构造函数有自己的,prototype对象,这些对象包含其对应子类型所特有的行为特征。

  • 相关阅读:
    VSCode中按ESLint规则格式化Javascript代码
    VSCode设置资源管理器字体大小
    Windows下利用安装压缩包安装MySQL
    Windows部署Apache 2.4.46及PHP 8.0.3
    npm设置国内镜像
    IDEA运行Tomcat输出信息乱码
    深入理解jvm虚拟机读书笔记-Java内存区域与内存溢出异常
    Navicat Premium
    mysql安装
    ElasticSearch 基础
  • 原文地址:https://www.cnblogs.com/enmac/p/13202336.html
Copyright © 2011-2022 走看看