JavaScript、ES6中的类和对象

面向对象可以用于描述现实世界的事物,但是事物分为具体的(特指的)事物和抽象的(泛指的)事物。

面向对象思维的特点:

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);  // 20
aa.sing("lala"); // 小明唱lala
bb.play(); // play

原文地址:https://www.cnblogs.com/sylys/p/11652518.html

时间: 2024-08-27 07:16:13

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

ES6中的类

前面的话 大多数面向对象的编程语言都支持类和类继承的特性,而JS却不支持这些特性,只能通过其他方法定义并关联多个相似的对象,这种状态一直延续到了ES5.由于类似的库层出不穷,最终还是在ECMAScript 6中引入了类的特性.本文将详细介绍ES6中的类 ES5近似结构 在ES5中没有类的概念,最相近的思路是创建一个自定义类型:首先创建一个构造函数,然后定义另一个方法并赋值给构造函数的原型 function PersonType(name) { this.name = name; } Person

重学ES6(二):ES5和ES6中Class类的相同与不同

ES5和ES6中Class类的相同与不同 先说结论,简而言之ES5用function定义类,ES6用class定义类,class的本质是function,ES6中的类只是语法糖,它并没有改变ES5下类实现的本质. 类的定义 ES5 // ES5函数来描写类 // 声明类 let Animal = function (type) { this.type = type // 定义实例方法 this.drink = function () { console.log('drink') } } // 定

JavaScript ES6中export及export default的区别

相信很多人都使用过export.export default.import,然而它们到底有什么区别呢? 在JavaScript ES6中,export与export default均可用于导出常量.函数.文件.模块等,你可以在其它文件或模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用,但在一个文件或模块中,export.import可以有多个,export default仅有一个. 具体使用: 1. //demo1.js export con

Runtime of Objective-C 2-理解oc中的类和对象

1: 类Class:       typedef struct objc_class * Class;     从Class的定义可以看出,它是一个 objc_class 结构类型的指针,objc_class又是什么呢? struct objc_class { struct objc_class* isa; struct objc_class* super_class; //root的为null const char* name; long version; long info; long in

JavaScript中的类数组对象

在javascript中,对象与数组都是这门语言的原生规范中的基本数据类型,处于并列的位置. 一般来说,如果我们有一个对象obj和一个数组a: obj["attr1"];    //取obj对象的attr1属性 a[1];   //取数组a中的第二个元素 但是,有些时候,也会将一个对象“伪装”成一个数组来用,我们把这种对象称为“类数组对象”,再此我们可以給它下一个定义,请看如下的代码: var a= {}; var i = 0; for(i=0; i<10 ; i++){ a[i

ES6中class类用法

之前想要通过javascript来实现类,通常会采用如下构造函数的模式: 1 function Person(name,age,job){ 2 this.name = name; 3 this.age = age; 4 this.job = job; 5 this.friends = ['Shelby','Court']; 6 } 7 Person.prototype = { 8 constructor:Person, 9 sayName: function(){ 10 document.wri

Effective JavaScript Item 51 在类数组对象上重用数组方法

Array.prototype对象上的标准方法被设计为也可以在其它对象上重用 - 即使不是继承自Array的对象.因此,在JavaScript中存折一些类数组对象(Array-like Objects). 一个典型的例子是函数的arguments对象,在Item 22中对它进行过介绍.该对象并不继承自Array.prototype,所以我们不能直接调用arguments.forEach来对其中的元素进行遍历.但是,我们可以通过首先得到forEach方法的对象,然后调用call方法(可以参考Ite

es6中class类的使用

在es5中我们是使用构造函数实例化出来一个对象,那么构造函数与普通的函数有什么区别呢?其实没有区别,无非就是函数名称用首字母大写来加以区分,这个不用对说对es5有了解的朋友都应该知道. 但是es5的这种方式给人的感觉还是不够严谨,于是在es6中就换成了class,就是把es5中的function换成了class,有这个单词就代表是个构造函数,然后呢对象还是new出来的,这一点并没有变化.    类的使用 从里面的代码我们可以看到除了function变成了class以外,其它的跟es5一样 cla

【编程语言】Java中的类和对象learn by Imooc

 一.什么是类和对象 * 类是模子,确定对象将会拥有的特征(属性)和方法 * 类的特点: *     类是对象的类型 *     具有相同属性和方法的一组对象的集合 * 对象的属性 *     属性-对象具有的各种特征 *     每个对象的每个属性都有用的特定值 * 对象的方法 *     方法-对象执行的操作(能干什么) * 类和对象的关系 *     类是抽象的概念,仅仅是模板 *     对象是一个你能够看得到,摸得着的具体实体 二. 如何定义Java的类 * 1.类的重要性:所有Jav