面向对象可以用于描述现实世界的事物,但是事物分为具体的(特指的)事物和抽象的(泛指的)事物。
面向对象思维的特点:
1.抽取(抽象)对象共有的属性和行为组织(封装)成一个类(模板)
2.对类进行实例化,获取类和对象 
3.对象--特指的
1) 对象是一个具体的事物,一个苹果、一张网页、一个数据库、一个与远程服务器的连接也是对象;
2) javascript中 对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如,字符串、数值、数组、函数等。
    属性:事物的特征,在对象中用属性来表示(常用名词)如,人的name
    方法:事物的行为,在对象中用方法来表示(常用动词)
4.类--泛指的 
   可以用class关键字声明一个类(字母大写),之后以这个类来实例化对象。
5.类和对象的区别:
1) 类抽象了对象的公共部分,它泛指某一大类(class)
2) 对象特指某一个,通过类实例化一个具体的对象 
3) 类必须使用new实例化对象
4) 创建类 创建对象
    语法:
class Name { // body}
    创建实例:
var xx = new Name();
6.语法规范:
1) 用class关键字声明一个类,首字母大写
2) 类里面的constructor函数,存放的是类的共有属性;
    可以接受传递过来的参数,同时返回实例对象(不需要return哦)
    只要new生成实例时,就会自动调用这个函数,如果我们不写这个函数,类会自动生成这个函数
3) 生成实例的new不能省略 
4) 创建类时 类名后面不加小括号,生成实例 类后面加小括号 
5) 构造函数不需要加function(类里面的所有函数不需要添加function)
6) 多个函数方法之间不需要用逗号分隔
 
具体的实例如下:

// 1.创建一个明星类
class Star{
// 类的共有属性放到constructor中
constructor(name, age){
this.name = name;
this.age = age;
}
sing(song){
alert(this.name+"唱"+song);
}
play(){
alert("play");
}
}
// 2.利用类创建对象
var aa = new Star('小明', 20);
var bb = new Star('小红', 20); console.log(aa.name); // 小明
console.log(bb.age); //
aa.sing("lala"); // 小明唱lala
bb.play(); // play

JavaScript、ES6中的类和对象的更多相关文章

  1. Nodejs与ES6系列4:ES6中的类

    ES6中的类 4.1.class基本语法 在之前的javascript语法中是不存在class这样的概念,如果要通过构造函数生成一个新对象代码 function Shape(width,height) ...

  2. 160803、如何在ES6中管理类的私有数据

    如何在ES6中管理类的私有数据?本文为你介绍四种方法: 在类的构造函数作用域中处理私有数据成员 遵照命名约定(例如前置下划线)标记私有属性 将私有数据保存在WeakMap中 使用Symbol作为私有属 ...

  3. es6中class类的全方面理解(一)

    传统的javascript中只有对象,没有类的概念.它是基于原型的面向对象语言.原型对象特点就是将自身的属性共享给新对象.这样的写法相对于其它传统面向对象语言来讲,很有一种独树一帜的感脚!非常容易让人 ...

  4. es6中class类的全方面理解

    传统的javascript中只有对象,没有类的概念.它是基于原型的面向对象语言.原型对象特点就是将自身的属性共享给新对象.这样的写法相对于其它传统面向对象语言来讲,很有一种独树一帜的感脚!非常容易让人 ...

  5. ES6中的类

    前面的话 大多数面向对象的编程语言都支持类和类继承的特性,而JS却不支持这些特性,只能通过其他方法定义并关联多个相似的对象,这种状态一直延续到了ES5.由于类似的库层出不穷,最终还是在ECMAScri ...

  6. ES6中的类继承和ES5中的继承模式详解

    1.ES5中的继承模式 我们先看ES5中的继承. 既然要实现继承,首先我们得要有一个父类. Animal.prototype.eat = function(food) { console.log(th ...

  7. TypeScript完全解读(26课时)_8.ES6精讲-ES6中的类(进阶)

    8.TypeScript完全解读-ES6精讲-类(进阶) 在index.ts内引入 Food创建的实例赋值给Vegetabled这个原型对象,这样使用Vegetables创建实例的时候,就能继承到Fo ...

  8. JavaScript ES6中,export与export default

    自述: 本来是对new Vue()和export default比较懵的,查了一下,发现我理解错了两者的关系,也没意识到export与export default的区别,先简单的记录一下基本概念,后续 ...

  9. ES6中。类与继承的方法,以及与ES5中的方法的对比

    // 在ES5中,通常使用构造函数方法去实现类与继承 // 创建父类 function Father(name, age){ this.name = name; this.age = age; } F ...

随机推荐

  1. Cloneable接口的作用与深度克隆与浅度克隆

    cloneable接口的作用 cloneable其实就是一个标记接口,只有实现这个接口后,然后在类中重写Object中的clone方法,然后通过类调用clone方法才能克隆成功,如果不实现这个接口,则 ...

  2. awk基础学习

    2019-12-20 需要巧记,很多格式,学习难度:grep.sed.awk awk知识概述 1三剑客awk命令介绍2三剑客awk命令执行原理语法结构3三剑客awk命令实操练习查询替换信息排除(取反) ...

  3. 分布式事务 GTS 的价值和原理浅析

    GTS 今年双 11 的成绩 今年 2684 亿的背后,有一个默默支撑,低调到几乎被遗忘的中间件云产品——GTS(全局事务服务,Global Transaction Service),稳稳地通过了自 ...

  4. 获取第几个class

    假如类名为a,如果是同级(兄弟元素)的,如:<ul><li class='a'></li><li class='a'></li></u ...

  5. k8s登录harbor报错:Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request cance

    [root@k8s-node02 ~]# docker login 192.168.180.105:1180 Username: admin Password: Error response from ...

  6. 立神gvim

    set cursorlineset history=1700set nocompatible  "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限  set nufiletype ...

  7. js中获取当前系统时间

    使用var myDate = new Date();//获取系统当前时间 获取特定格式的时间: 1 myDate.getYear(); //获取当前年份(2位) 2 myDate.getFullYea ...

  8. Linux下使用 ipset 封大量IP及ipset参数说明

    转载Linux下使用 ipset 封大量IP及ipset参数说明 Linux使用iptables封IP,是常用的应对网络攻击的方法,但要封禁成千上万个IP,如果添加成千上万条规则,对机器性能影响较大, ...

  9. SQL数据库字段添加说明文字

    1.查看指定表中的所有带说明文字的字段内容 SELECT *,OBJECT_NAME(major_id) AS obj_name FROM sys.extended_properties WHERE ...

  10. mysql慢查询解析-linux命令

    使用mysqldumpslow 命令可以解析mysql慢查询日志,mysqldumpslow的参数如下: -s ,是按照任何方式排序,c.t.l.r分别是按照记录次数.时间.查询时间.返回的记录数 来 ...