js高级==>对象
- js面向对象的编程,在js中没有class(类)这个概念,而是使用对象来模拟类;
2.面向过程和面向对象比较 面向对象是面向过程的封装;
面向过程:将功能拆解开,一步步开始去实现完成;
js经典比喻:洗衣服
面向过程:洗衣服:
1, 收拾脏衣服;
2, 打开洗衣机;
3, 放入衣服;
4, 加水以及洗衣粉
5, 设定程序,通电
6, 开始洗 一段时间
7, 打开洗衣机, 晾晒衣服
面向过程的编程思想: 所有的事都得自己干, 亲力亲为;
面向对象一种编程思想: 将属性和方法封装,通过语法.调用;
面向对象: 是一种编程思想
1, 女朋友
2, 洗衣机
// 3, 我,你,他
面向对象与面向过程的比较:
面向对象和面向过程最本质的区别在于考虑问题的出发点不同,面向过程是以事件流程为考虑问题的出发点,
而面向对象则是以参与事件的角色(对象)为考虑问题的出发点,所以面向对象在处理问题时更加灵活。
目前,面向过程的语言更多被用于处理底层业务,而面向对象编程则更多用于实现一些业务逻辑复杂的大型系统。
从结构上来说,面向过程的特点是模块化和流程化,而面向对象的特点是封装、继承和多态,这里面就有本质的区别了。
面向过程以功能(函数)作为模块化的基础,而面向对象则以类作为功能的组织基础,而类需要一个“抽象”的过程。
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;
面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
3.js中的对象是:键值对的集合 key-value 键值对
字面量定义对象和function定义对象的区别:
字面量的优势:它的代码量更少,更易读;
它可以强调对象就是一个简单的可变的散列表,而不必一定派生自某个类;
对象字面量运行速度更快,因为它们可以在解析的时候被优化:它们不需要"作用域解析(scope resolution)";
因为存在我们创建了一个同名的构造函数Object()的可能,当我们调用Object()的时候,
解析器需要顺着作用域链从当前作用域开始查找,如果在当前作用域找到了名为Object()的函数就执行,
如果没找到,就继续顺着作用域链往上照,直到找到全局Object()构造函数为止.
4.语法结构: 字面量的形式创建一个对象
var person={
name:‘李四’,
age:20,
job:‘搬砖’
}
person.name; 对象.对象的属性
var person1={
name:{ xiao:‘李四’,
da: ‘麻子’},
age:20,
job:‘搬砖’
}
person1.name.xiao; 对象.对象.对象的属性