「这是我参与2022首次更文挑战的第11天,活动详情查看:2022首次更文挑战」。
第5章 JS高级应用3
1. 面向过程与面向对象
1.1 面向过程
面向过程 POP(Process-oriented programming)就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次调用就可以了。
1.2 面向对象
面向对象( OOP(Object Oriented Programming))是把事务分解成为一个个对象,然后由对象之间分工与合作。
1.3 面向过程与面向对象对比
在面向对象程序开发思想中,每一个对象都是功能中心 ,具有明确分工。
| 面向过程 | 面向对象 | |
|---|---|---|
| 优点 | 性能比面向对象高,适合跟硬件联系很紧密的东西,例如单片机就采用的面向过程编程。 | 易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护 |
| 缺点 | 不易维护、不易复用、不易扩展 | 性能比面向过程低 |
2. 对象
2.1 对象
对象是由属性和方法组成的:是一个无序键值对的集合,指的是一个具体的事物
-
属性:事物的特征,在对象中用属性来表示(常用名词)
-
方法:事物的行为,在对象中用方法来表示(常用动词)
对象的属性
Object.prototype Object 的原型对象,不是每个对象都有prototype属性
Object.prototype.proto 不是标准方法,不鼓励使用,每个对象都有__proto__属性,但是由于浏览器实现方式的不同,__proto__属性在chrome、firefox中实现了,在IE中并不支持,替代的方法是Object.getPrototypeOf() Object.prototype.constructor:用于创建一个对象的原型,创建对象的构造函数 可能大家会有一个疑问,为什么上面那些属性要加上prototype 在chrome中打印一下var a = {}
(1) 创建对象
// 1.字面量
var obj1 = {
uname: '张美丽',
age: 18,
sayHi: function() {
console.log('nihao');
}
}
// 2.用new关键字创建
var obj2 = new Object();
obj2.uname = '李红';
obj2['age'] = 19;
obj2.sayHi = function() {
console.log('你好');
};
// 3.构造函数创建
function Person(uname, age) {
this.uname = uname;
this.age = age;
this.sayHi = function(arg) {
console.log('我说' + arg);
}
};