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

JavaScript 面向对象类创建与闭包

程序员文章站 2022-04-05 19:45:10
...
    JavaScript 不是面向对象的程序设计语言,其中的继承、多态并没有很好的实现,JavaScript 没有规范的语法去创建类,JavaScript 在定义函数时,同时也定义了一个同名的类,该函数就是该类的构造器,通过该函数创建的对象既属于该类实例,又属于object类实例。
    JavaScript 各类的对象不存在直接的父子关系,但他们都拥有共同的父亲object。
    一般来说,我们不在类中定义方法,因为这样有以下两种缺点:
    1.性能低下:因为每次创建Person实例时,程序依次向下执行,每次执行程序中粗体字

代码时都将创建一个 新的info函数一当创建多 个Person对象时,系统就会有很多个info函数一这 就会造成系统内存泄漏,从而引起性能下降。实际上,info 函数只需要一个就够了。
JavaScript 面向对象类创建与闭包
JavaScript 面向对象类创建与闭包
2.使得info函数中的局部变量产生闭包:闭包会扩大局部变量的作用域,使得局部变量一直存活到函数之外的地方。如下图
JavaScript 面向对象类创建与闭包 这里我们了解到一个新的概念,闭包。所谓闭包就是能够访问到局部变量的局部函数,图中的info方法中会输出变量locVal的值,而这个变量是类中的局部变量,所以info方法相当于一座桥,将外部与内部连接,使得类外可以访问到类内的变量,这就是闭包。