js面向对象编程

红太狼 2020-06-06 17:24 820阅读 0赞

js面向对象编程

一、面向对象编程

1.面向过程与面向对象

1)面向过程:专注于如何解决一个问题的过程步骤,编程特点是由一个个函数去实现每一步的过程步骤,没有类和对象的概念。

2)面向对象:专注于由哪一个对象来解决问题,编程特点是出现一个类,从类中拿到对象,由这个对象去解决具体问题。

对于调用者来说,面向过程需要调用者自己去实现各种函数。而面向对象,只需要调用者了解对象中具体方法的功能,不需要了解方法中的实现细节。

2.面向对象的三大特征

面向对象的三大特征继承、封装、多态。JS可以模拟实现继承和封装,但是无法模拟实现多态,所以JS是一门基于对象的语言, 而不是传统意义上的面向对象的语言。

3.类和对象的关系

1)类是抽象的,对象是具体的(类是对象的抽象化,对象是类的具体化)

2)类是一个抽象的概念,只能说类有属性和方法,但是不能给属性赋具体的。比如,人类有姓名,但是不能说人类的姓名叫什么。

二、Javascript对象的创建方法

1.var obj = {}//简单对象plainObject 对象字面量/对象直接量

2.构造函数(特点:大驼峰式命名规则)

1)系统自带的构造函数

var obj = new Object();//相当于var object = {}

2)自定义函数封装

// 函数里面加参数才能使函数自定义,可以随意改变函数中对应参数的数据,生产对象的时候必须得new对象

  1. function Car(color){
  2. this.color=color;
  3. this.name = "BMW";
  4. this.height = "1400";
  5. this.lang = "4900";
  6. this.weight = 1000;
  7. this.health = 100;
  8. this.run = function(){
  9. this.health -- ;
  10. }
  11. }

var car = new Car(“red”);

3.对象构造函数的内部原理3步

1)在函数体最上面隐式的加上一个对象:var this = {}

2)执行函数体中的内容

3)隐式的返回this对象

三、包装类

1.原始值是不可能有属性和方法(undefined、null、number、boolean、string)

2.有些原始值经过包装类之后,可以进行调用

var num=123;//不是对象

var num1=new Number(123);//是对象

3.隐式包装类的过程如下

  1. var num = 4;
  2. num.len = 3;//隐式发生转换,新建一个数字对象,然后添加属性并赋值,最后删除这个对象,所以在执行过程中没有报错
  3. console.log(num.len);//再新建一个数字对象,添加属性,所以最后输出为undefined
  4. var str="abcd";
  5. str.length=2;
  6. console.log(str.length);
  7. //输出为4,在输出时原始值str包装类之后输出的为new String('abcd').length,字符串自带length属性,所以输出长度为4

发表评论

表情:
评论列表 (有 0 条评论,820人围观)

还没有评论,来说两句吧...

相关阅读

    相关 JS面向对象编程

    让前端开发者最熟悉又最陌生的就是js的面向对象编程了吧,很多人对面向对象编程一脸茫然,并自嘲只会面向过程编程,面向测试编程,面向业务编程。其实面向对象在平时开发中无处不在,因为

    相关 js面向对象编程

    js中没有类的概念,但是却能够创建对象,并实现继承,封装,多态的特点。 因为在js中所有的函数既可以当成是构造函数,也可以当成普通函数调用,当函数当成构造函数调用时,该函数

    相关 js面向对象编程详解

    什么是面向对象编程(OOP)? 用对象的思想去写代码,就是面向对象编程 面向对象编程的特点 1. 抽象:抓住核心问题(把一样的放在一起) 2. 封装:只能通过对象来访

    相关 怎么理解js面向对象编程

    [怎么理解js的面向对象编程][js] 面向对象的语言有一个标志,即拥有类的概念,抽象实例对象的公共属性与方法,基于类可以创建任意多个实例对象,一般具有封装、继承、多态的

    相关 js面向对象编程

    js面向对象编程 一、面向对象编程 1.面向过程与面向对象 1)面向过程:专注于如何解决一个问题的过程步骤,编程特点是由一个个函数去实现每一步的过程步骤,没有类和对象的概...