<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// class,可以说它是语法糖
//提供更接近传统语言的编程手段
function Phone(brand, price) {
this.brand = brand;
this.price = price;
}
Phone.prototype.callsomebody = function () {
console.log('QAQ');
}
let hw = new Phone('hw', 1000);
hw.callsomebody();
console.log(hw);
//梦回Java,传统构造函数
//实质上是ES5的构造函数版本方法
class phone {
//构造方法(名字固定)
//当使用 new 类名 时候会自动执行
constructor(brand,price) {
this.brand=brand;
this.price=price;
}
//添加方法
//方法必须使用此语法格式,不可以使用ES5中对象完整语法< call : function(){} >
callsomebody(){
console.log('差不多得了');
}
}
let redmi=new phone('RedMi',2000);
redmi.callsomebody();
console.log(redmi);
//同C++
//实例对象是在prototype上面找对应的属性和方法,
//如果想要构造函数的默认属性OR方法被访问到,
//需要在构造函数的prototype上添加(原型),如下:
phone.prototype.size=10;
let p2 =new phone();
console.log(p2.size);
//直接在构造函数中创建的属性OR方法,属于静态属性,
//它属于类而不属于实例对象,如下:
class p3{
//静态属性
static name = 'wtf'
static p3f1(){
console.log('p3f1');
}
}
let pp3=new p3();
console.log(p3.name,pp3.name);
p3.p3f1();
// pp3.p3f1()//报错:not a function
</script>
</body>
</html>
JavaScript class部分
最新推荐文章于 2024-07-20 23:54:17 发布