js面向对象

                            JS——面向对象

1.面向对象:

 js一开始就是写网页特效 面向过程的,作者发现这样写不好,代码重复利用率太高,计算机内存消耗太大,网页性能很差。所以作者就受到Java和c语言的影响,往面向对象靠齐。js天生有一个object,但他没有面向对象的特征(封装 继承 多态)。最后研究出了构造函数。

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

我们把封装的那个函数叫类

类里面的属性是私有的。

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

  (1)类身上自带一个prototype的属性,属性值是对象。

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

  (3)实例天生有一个--proto--指向自己类的原型。

  

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

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

2.var a和a的区别:

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

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

 

原文地址:https://www.cnblogs.com/yuanjingjing/p/9896339.html