part4 javascript类

JavaScript类(class)

class ClassName {
 constructor() { ... }//类的狗在函数,用于初始化一个由class创建的对象
}
class Runoob {
 constructor(name, url) {
   this.name = name;
   this.url = url;
}
}

使用类

new关键字来创建对象

class Runoob {
 constructor(name, url) {
   this.name = name;
   this.url = url;
}
}

let site = new Runoob("阿娆要努力呀",  "https://www.cnblogs.com/ar000517/");

类表达式

// 未命名/匿名类
let Runoob = class {
 constructor(name, url) {
   this.name = name;
   this.url = url;
}
};
console.log(Runoob.name);
// output: "Runoob"

// 命名类
let Runoob = class Runoob2 {
 constructor(name, url) {
   this.name = name;
   this.url = url;
}
};
console.log(Runoob.name);
// 输出: "Runoob2"

构造方法是一种特殊的方法:

  • 构造方法名为 constructor()。

  • 构造方法在创建新对象时会自动执行。

  • 构造方法用于初始化对象属性。

  • 如果不定义构造方法,JavaScript 会自动添加一个空的构造方法。

类的方法

我们使用关键字 class 创建一个类,可以添加一个 constructor() 方法,然后添加任意数量的方法。

class Ar {
 constructor(name, year) {
   this.name = name;
   this.year = year;
}
 age() {
   let date = new Date();
   return date.getFullYear() - this.year;
}
}
let ar = new Ar("阿娆", 2000);
document.getElementById("demo").innerHTML =
"阿娆" + ar.age() + " 岁了。";

类继承

关键字extends

// 基类
class Animal {
   // eat() 函数
   // sleep() 函数
};


//派生类
class Dog extends Animal {
   // bark() 函数
};

getter setter

类中我们可以使用 getter 和 setter 来获取和设置值,getter 和 setter 都需要在严格模式下执行。

getter 和 setter 可以使得我们对属性的操作变的很灵活。

类中添加 getter 和 setter 使用的是 get 和 set 关键字。

class Ar {
 constructor(name) {
   this.sitename = name;
}
 get s_name() {
   return this.sitename;
}
 set s_name(x) {
   this.sitename = x;
}
}

let ar = new Ar("菜鸟教程");

document.getElementById("demo").innerHTML = ar.s_name;

注意:即使 getter 是一个方法,当你想获取属性值时也不要使用括号。

getter/setter 方法的名称不能与属性的名称相同,

静态方法

static 类方法,属于类但属不属于对象 ==类名.方法名==

静态方法不能再对象上调用,只能在类中调用

 

 

 

 

 

posted on 2022-02-22 22:45  阿娆要努力呀  阅读(33)  评论(0)    收藏  举报