面向对象
面向过程
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 + "。" ) ;
}