zoukankan      html  css  js  c++  java
  • JS(JavaScript)的进一步了解3(更新中···)

     

    数据的三种存储方式

    1. String   “ ”
    2. Array    [ ]
    3. Json    { }

     

    所有编程语言java c python c++ 等 他们都是面向对象编程,面向对象必须有三大特点,封装,继承,多态.

    今天就是研究JS如何生成对象。

    1. 面向对象

    Js一开始就是写网页特效,面向过程的,作者发现这样写不好,代码重复利用率太高,计算机内存消耗太大,网页性能很差。

    所以作者就收到javac的影响,往面向对象靠齐。Js天生有一个Object,但他没有面向对象的特征(封装,继承,多态)。

    最后研究出了构造函数。

    构造函数最终目的是生成对象。

    我们把封装的那个函数叫

    类里面的属性是私有的。

    类原型上的属性是公有的,可继承的

      1)类身上天生自带一个prototype的属性,属性是对象

      2)Prototype对象天生有一个constructor属性,属性值就是类本身

      3)实例天生有一个__proto__ 指向你自己类的原型

      

      原型链主要针对对象的属性来说的

      作用域链主要针对变量来说的

      

      var aa的区别

       没有带var的变量就不能存放到内存地址中。就没有变量提升这种说法了。相当于给window加了一个属性window.a

       带var 可以存放在内存地址中,有变量提升,同时也相当于给window加了一个属性window.a

     

     函数:

     

    函数在调用的时候,会形成一个私有作用域,内部的变量不会被外面访问,这种保护机制叫闭包。这就意味着函数调用完

    毕,这个函数形成的栈内存会被销毁。

    但有时候我们不希望他被销毁。

    函数归属谁跟它在哪调用没有关系,跟在哪定义有关。

    Fn()调用完毕后得到的是一个匿名函数,但是这个函数在fn这个作用域下定义的,所以这个匿名函数内部的变量在fn作用域

    下查找。这种写法可以使函数内部的变量不被销毁。

     

  • 相关阅读:
    Centos7安装teamviewer 32/64位
    Centos7安装32位库用来安装32位软件程序
    linux环境下配置mysql双主复制
    zabbix自定义触发器进行监控
    VM安装系统时提示硬件不支持(unsupported hardware detected)
    mysql新建用户在本地无法登录
    msyql开启慢查询以及分析慢查询
    zabbix怎么把英文界面换成中文
    xencenter如何安装系统
    mysql优化查询
  • 原文地址:https://www.cnblogs.com/zff123/p/9985067.html
Copyright © 2011-2022 走看看