热爱web前端
技术分享平台

javascript oop

什么是oop?

oop 是Object Oriented Programming 面向对象编程,一种计算机编程架构。

在JavaScript中要实现oop 有很多种方法

// 一个简单的对象,用于在屏幕上显示一个点
function Point(x,y){
    this.x=x;
    this.y=y;
}
Point.prototype.getX=function(){
    return this.x;
}
Point.prototype.getY=function(){
    return this.y;
}
var point =new Point(10,20);
point.getY();// 20;
point.getX();//10;


var point2 = new Point(50,100);
point2.getY();//100;
point2.getX();// 50

这就是一个基本的OOP编码例子;这是一种比较标准的写法
此时的`Point` 被称为类,或者叫构造函数;调用的时候必须使用 `new` 关键字不能直接 `Point(10,20)` 调用;

对于新手来说,以上代码虽然简单,但看起来依然一脸懵逼;
首先问题1:为什么要使用面向对象;
2:什么是类,或者什么是构造函数
3:代码中的this是什么意思
4:`Point.prototype.getX` 是什么意思
5:在什么业务场景下使用OOP

好吧,问题一个一个来;
1:粗糙的说下为啥要使用面向对象
– 代理利于维护,扩展
– 可重用(代码封装,继承 ,。。。有多了个新问题 什么是继承~~)
– 类是面向对象编码中最基本的组成单元,一切都是基于类的
– `this`的指向问题,在类中,`this`指向当前对象 (`new Point()`)

2:prototype是对象的原型 这js 通过prototype 来实现继承,原型链就像子孙后代一样,孙子的原型是父亲,父亲的原型是 老爷,老爷上原型的任何东西,都可以直接被孙子 以及孙子的孙子访问,通常原型一般只放 函数公共函数,例如多个孙子可以拥有相同的函数,就没有必要每个孙子都定义一个,直接在老爷的原型上定义就可以了
Point.prototype就是给Point 这个对象定义一系列 的公共函数,所有`new Point` 出来的对象都可以直接访问,这样就实现了代码的重用
3.使用场景,大量的js逻辑,完全使用js构建的应用,自定义组件 等

使用oop编码有利于你学习其他高级语言例如 `typescript` `java` 等

如果您对oop概念仍然迷惑,欢迎留言讨论~~

未经允许不得转载:前端网(w3cvip) » javascript oop

分享到:更多 ()

评论 抢沙发

评论前必须登录!