面向对象
面向过程
var name = "Tom";
var age = 13;
var gender = "male";
var name = "Jerry";
var age = 15;
var gender = "female";
面向对象
- 代码复用,面向对象中类这种技术可以极大的体现代码复用
- 同一类的对象应当由同一种类来生成
- 面向对象实际上就是对问题域进行封装
var o = {
name: "Tom",
age: 13,
gender: "male"
}
var o = {
name: "Jerry",
age: 15,
gender: "female"
}
function Animal(_name, _age, _gender) {
this.name = _name;
this.age = _age;
this._gender = gender;
}
var o1 = new Animal("Tom", 13, "male");
var o2 = new Animal("Jerry", 15, "famale");
class语法
calss
为构造函数的语法糖
class Person {
abc = "hello";
constructor (name, age, gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
say() {
console.log(`我叫${this.name},今年${this.age}岁`);
}
}
var o = new Person("Tom", 18, "male");
console.log(o);
var c = class Person{
constructor () {
}
}
var o = new c("tom", 18, "male")
console.log(o)
calss
底层实现
function Person (name, age, like) {
this.abc = "aaaaaaaabbbbbbbbbbbbbccccc";
this.name = name;
this.age = age;
this.like = like;
this.say = function () {
console.log("我叫" + this.name + ",我今年" + this.age + ",就爱" + this.like + "。");
}
}
Person.prototype.say = function () {
console.log("我叫" + this.name + ",我今年" + this.age + ",就爱" + this.like + "。");
}