欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JS(JavaScript)的进一步了解3(更新中···)

程序员文章站 2022-06-30 19:32:27
数据的三种存储方式 所有编程语言java c python c++ 等 他们都是面向对象编程,面向对象必须有三大特点,封装,继承,多态. 今天就是研究JS如何生成对象。 Js一开始就是写网页特效,面向过程的,作者发现这样写不好,代码重复利用率太高,计算机内存消耗太大,网页性能很差。 所以作者就收到j ......

 

数据的三种存储方式

  1. string   “ ”
  2. array    [ ]
  3. json    { }

 

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

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

  1. 面向对象

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

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

最后研究出了构造函数。

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

我们把封装的那个函数叫

类里面的属性是私有的。

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

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

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

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

  JS(JavaScript)的进一步了解3(更新中···)

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

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

  JS(JavaScript)的进一步了解3(更新中···)

  var aa的区别

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

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

 

 函数:

 

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

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

JS(JavaScript)的进一步了解3(更新中···)

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

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

JS(JavaScript)的进一步了解3(更新中···)

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

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