11.2JS笔记

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

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

我们把封装的函数叫做类

类里面的属性是私有的

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

2、

(1)类天生自带一个prototype属性,属性值是对象

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

(3)实例天生有一个—proto—属性,指向类的原型

*原型链主要针对对象的属性来说的,作用域链主要针对变量来说的

*var a 和 a的区别:没有带var的变量就不能存放到内存地址中,就没有变量提升这个功能,相当于给

window添加了一个叫做a的属性  (window.a

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

原文地址:https://www.cnblogs.com/qinlinkun/p/9909736.html