JavaScript-高级篇,面向对象

78 阅读2分钟

「这是我参与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);

    }

};