面向对象可以用于描述现实世界的事物,但是事物分为具体的(特指的)事物和抽象的(泛指的)事物。
面向对象思维的特点:
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. 8:Spring Boot Shiro记住密码

    1,添加Cookie 2,添加安全管理器中 3,配置记住我, 4 ,在登录页面中加我rememberMe复选框 /** * 1.配置Cookie对象 * 记住我的cookie:rememberMe * ...

  2. Element ui 中的Upload用法

    效果图: 代码:

  3. JavaSE——柏羲

    MySql Redis源码分析呢?

  4. Solr搜索引擎基础

    搜索引擎是指一个庞大的互联网资源数据库,如网页,新闻组,程序,图像等.它有助于在万维网上定位信息. 用户可以通过以关键字或短语的形式将查询传递到搜索引擎中来搜索信息. 搜索引擎然后搜索其数据库并向用户 ...

  5. git本地文件提交

    一.github在线上传文件夹 1.点击上传文件 2 .直接拖拽 直接拖拽即可上传文件夹及文件夹里面的文件.如果点击 choose your files 就只能上传单个文件. 二.通过git工具上传本 ...

  6. spring MVC junit单元测试 各test之间共享变量

    使用静态变量   private static String iPSetCode=null;

  7. VXcode学习

    1.安装中文包(chinese) 2.打开控制面板ctrl+shift+p

  8. 电脑配置Java环境变量之后,在cmd中仍然无法识别

    在电脑上配置了Java的环境变量,但是在cmd框中仍然无法识别: 解决方法:cmd.exe右键---以管理员身份运行,即可识别

  9. zabbix主动、被动TCP连接过程

    zabbix主动.被动TCP连接过程 https://blog.csdn.net/u010668387/article/details/79460183

  10. C++用参数返回结果与用返回值返回结果的思考

    /*** *xvkBuffer作为参数比写为返回值的好处是: *1,xvkBuffer可以是堆变量或栈变量,若写为返回值则只能是堆上申请,因为必须保证它的永久性 *2,xvkBuffer或作为栈变量返 ...