zoukankan      html  css  js  c++  java
  • JavaScript的对象

    JavaScript里面有很多对象,但是引用方法不尽相同,带着好奇的心探索一番,原来对象主要分为3大类。
    一、内置对象(Build-in Object)
    1、创建
    在引擎初始化阶段就被创建,不需要New,每个内置对象都是原生对象,内置对象是原生对象的子集。
    2、有哪些

    Global、Math、JSON。

    实例化的目的就是想用实例化后的对象里的属性和方法,那么既然JSON和Math已经是对象了,就省去实例化的操作喽,无需new。

    Math.__proto__ === Object.prototype  // true
    Math.construrctor == Object // true
    
    JSON.__proto__ === Object.prototype  // true
    JSON.construrctor == Object  // true

    二、原生对象(Native Object)
    1、创建
    原生对象包含一些在运行过程中动态创建的对象,要New
    2、有哪些

    Object、Function、Array、String、Boolean、Number、Date、RegExp、Error。

    3、对象原型

    Function是对象函数,通过new Function()创建,所以Function.__proto__指向Function.prototype。

    Function.prototype是个例外,它既是原型对象,又是函数对象。作为一个函数对象,它却没有prototype属性。

    Object是函数对象,也通过new Function()创建,所以Object.__proto__指向Function.prototype。

    Function.__proto__ === Function.prototype // true
    Function.constructor == Function   //true
    
    Object.__proto__ === Function.prototype  // true
    Object.constructor == Function    //true
    
    Number.__proto__ === Function.prototype  // true
    Number.constructor == Function   //true
    
    Boolean.__proto__ === Function.prototype // true
    Boolean.constructor == Function   //true
    
    String.__proto__ === Function.prototype  // true
    String.constructor == Function   //true
    
    Array.__proto__ === Function.prototype   // true
    Array.constructor == Function    //true
    
    RegExp.__proto__ === Function.prototype  // true
    RegExp.constructor == Function   //true
    
    Error.__proto__ === Function.prototype   // true
    Error.constructor == Function    //true
    
    Date.__proto__ === Function.prototype    // true
    Date.constructor == Function     //true
    //所有的构造器都来自Function.prototype
    console.log(typeof Function.prototype) // function
    console.log(typeof Object.prototype)   // object
    console.log(typeof Number.prototype)   // object
    console.log(typeof Boolean.prototype)  // object
    console.log(typeof String.prototype)   // object
    console.log(typeof Array.prototype)    // object
    console.log(typeof RegExp.prototype)   // object
    console.log(typeof Error.prototype)    // object
    console.log(typeof Date.prototype)     // object

    三、宿主对象
    1、DOM对象

    document,element,attribute,event,html。
    2、BOM对象

    window,document,location,history,navigator,XMLHttpRequest,screen,console。
    3、自定义对象

    //如何判断当前脚本运行在浏览器还是node环境中?
    通过判断Global对象是否为window,如果不为window,当前脚本没有运行在浏览器中。
  • 相关阅读:
    【2020Python修炼记】面向对象编程——绑定方法与非绑定方法
    【2020Python修炼记】面向对象编程——多态性与鸭子类型
    2020Python作业——封装2+继承
    2020Python作业——类与对象2+封装
    【2020Python修炼记】面向对象编程——继承与派生
    P1494 [国家集训队]小Z的袜子
    codeforces600E. Lomsat gelral(dsu on tree)
    这是个O2优化指令
    洛谷P1972 [SDOI2009]HH的项链
    poj3417
  • 原文地址:https://www.cnblogs.com/camille666/p/js_object.html
Copyright © 2011-2022 走看看