<script type="text/javascript">
// function Person(name,age){
// //属性
// this.name = name;
// this.age = age;
// //方法
// this.say = function(){
// console.log(this.name+'能说话');
// }
// }
// var p1 = new Person('张三',20);
// //访问属性 打点
// console.log(p1.name);
// //访问方法
// p1.say();
//构造函数
//以上时es5定义构造函数
//面向对象
// 01定义类
// 基础语法 通过class关键字
class Person{
//我们可以定义一些公共的属性
title = '人的信息';
//定义一个静态的变量
static height = 180;
//定义属性 初始化属性 constructor用来定义属性
constructor(name,age) {
this.name = name;//this指向的是当前的实列对象
this.age = age;
}
//定义方法/函数
say(){
// console.log(this.name+'能说话');
//注意函数是有返回值的
return this.name+'能说话';//this指向的是当前的实列对象
}
}
// 1对象都是 new关键词 new出来的
var p2 = new Person('李四',22);
// 2类的方法使用
// p2.say();有返回值 不能直接这样获得数据
var p2say = p2.say();
console.log(p2say);
// 4类的属性使用 属性是打点调用
console.log(p2.name);
console.log(p2.title);
// 5静态变量的使用
console.log(p2.height);//undefined
console.log(Person.height);//180
//总结 static静态成员 不能被实例继承 所以实列打点是获取不到的 需要原型打点获取
//总结 定义的这个 Person对象 我们称它为 原型对象
// p2我们称它为 实列对象 指的就是 具体的实在对象
效果图: