1.JS中的面向对象
下面以绝对值函数的书写方式简述创建和调用函数的几种方法
1.1原型继承
var user = {
name: 'liang',
age: 4,
sex: '男',
run: function () {
console.log(this.name + " is running...");
}
}
var xiaoming = {
name: "xiaoming"
}
//原始的继承方法
//小明的原型的是 user
xiaoming.__proto__ = user;
xiaoming.run();
1.2class继承
1.2.1类的声明
class关键字是在ES6引入的
ES6之前
function Student(name) {
this.name = name;
}
//给Students新增一个方法
Student.prototype.hello = function () {
console.log('hello');
}
ES6之后,采用了类似于JAVA对类的定义
//ES6之后
//定义一个学生的类
class Student {
constructor(name) {
this.name = name;
}
hello() {
console.log(this.name + ' hello');
}
}
var xiaohong = new Student('xiaohong');
xiaohong.hello();
1.2.2继承方法
//ES6之后
//定义一个学生的类
class Student {
constructor(name) {
this.name = name;
}
hello() {
console.log(this.name + ' hello');
}
}
var xiaohong = new Student('xiaohong');
xiaohong.hello();
class XiaoStudent extends Student {
constructor(name, grade) {
super(name);
this.grade = grade;
}
myGrade() {
console.log("我叫" + this.name + ",我在读" + this.grade + "年级");
}
}
var liming = new XiaoStudent("liming", 5);
liming.myGrade();
liming.hello();
运行结果
2.原型链
可参照【原型和原型链】什么是原型和原型链结合理解
写在最后
各位看官,都看到这里了,麻烦动动手指头给博主来个点赞8,您的支持作者最大的创作动力哟! <(^-^)>
才疏学浅,若有纰漏,恳请斧正
本文章仅用于各位同志作为学习交流之用,不作任何商业用途,若涉及版权问题请速与作者联系,望悉知