JavaScript面向对象(1)

文章介绍了编程中的面向过程和面向对象思想,对比了两者的特点和适用场景。面向过程注重步骤实现,适合硬件紧密的项目,而面向对象强调封装、继承和多态,适用于大型软件开发。在JavaScript中,虽然有类似类的语法,但其实质不同。文章还讨论了类的构造函数、对象实例化以及如何在类中添加方法,并提出了函数多次绑定的问题。
摘要由CSDN通过智能技术生成

1.编程思想

面向过程(POP):分析解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一步一步调用就行了

面向对象(OOP):把事物分解成一个个对象,然后由对象之间分工合作(找出对象出来,然后写出这些对象的功能)

面向过程的性能比较高,适合和硬件联系很紧密的东西,如单片机,缺点是难维护、难拓展、难复用

面向对象的代码灵活,代码可复用性高,容易维护和开发,更适合多人合作的大型软件项目

面向对象:封装性(直接使用,不需要了解内部)继承性、多态性(通过继承 + 不同的拓展)

 

JS的类

JavaScript只有一些近似类的语法元素,比如class关键字

但是这并不意味着JavaScript实际上有类,但是类是一种设计模式,所以我们可以用一些方法实现近似类的功能

 2.面向对象

1.抽取对象公共属性和行为组织封装成一个类(class)

class name { class body }

2.对象实例化,获取类的对象(对象是特指某一个,实例化的具体对象)

var xx = new name() // 利用类创建对象

对象由属性和方法构成

(1)class关键字创建类,类名习惯定义首字母大写

(2)constructor()是类的构造函数(默认方法),用于传递参数,返回实例对象,通过new命令生成对象实例时,自动调用该方法,如果没有明显定义,类内部会自动给我们创建一个constructor()(最好自己写上constructor)

class Star {
    constructor(uname, age) {
        this.name = uname;
        this.age = age;
    }
}
var xxx = new Star('xxx', 20);

假如一个函数进行多次 bind呢?

let a = {}
let fn = function () { console.log(this) }
fn.bind().bind(a)() // => ?

类里添加方法

1.在类里面构造函数,不需要加function

2.多个方法、函数之间不需要添加逗号进行分割

class Star {
    constructor(uname) {
        this.name = uname;
    }
    init() {
        //xxxx
    }
}

未完待续!!! 如果觉得这篇文章对您有帮助 请一键三连 关注博主(*^▽^*)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值