javascript的组成
1.ECMAScript 基础语法
2.DOM
3.BOM
什么是js?
是一门解释性语言
是一门脚本语言
是一门弱类型语言 var
是一门基于对象的语言
是一门动态类型的语言
动态页面:页面html+css+js
向服务器发送请求,服务器没有页面,是动态生成的,返回给客户端
js最初目的:解决用户和服务器端的交互问题
js可以做特效,游戏,移动端,服务端
编程思想:
面向过程:凡事亲力亲为,注重的过程
面向对象:提出需要,找对象,对象解决,注重的是结果
面向对象的三大特征:封装,继承,多态----js不是一门面向对象语言,但是可以使用这三个特征
封装:包装,把一个值放到变量里去, 把一段代码放在一个函数中, 把很多个函数放在一个对象中,把很多对象放在一个文件中
继承:类与类之间的关系,js没有类的概念,但是有构造函数,可以有继承,是基于原型。。
多态:同一个行为,针对不同对象,有多个表现。
自定义函数
1.在内存中开辟空间,存储对象
2.将this指定当前对象
3.设置属性和方法的值
4.把this对象返回
实例化对象是由构造行数创建的,创建的过程就叫实例化
使用构建函数创建对象:浪费空间,数据不能共享
prototype原型对象作用之一:节省空间,数据共享
//原型:
1.构造函数中有一个prototype属性,是一个对象,叫原型,这个属性是给程序员使用的,是一个标准属性,也叫原型对象
2.实例化对象中有个属性:__proto__属性,也是一个对象,叫原型,这个属性给浏览器使用,不是一个标准属性,也可以叫原型对象
//实例对象中__proto__和构造函数中的prototype是相等的
//又因为实例对象是由构造函数创建的,所以实例对象中的__proto__指向构造函数中的prototype
实例对象 原型对象 构造函数 这三个之间的关系
构造函数中有一个原型对象(prototype),prototype这个属性,是一个对象,这个原型中有一个属性constructor,指向当前的构造函数
实例对象中的__proto__指向构造函数中的prototype
实例对象可以直接调用原型对象中的方法
实例对象是通过构造函数创建的
原型对象:构造函数中的prototype属性,就是原型对象
实例对象中的__proto__属性也是原型对象,不标准属性