1.面向对象和面向过程的优缺点对比
面向过程
优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、 Linux/Unix等一般采用面向过程开发,性能是最重要的因素
缺点:没有面向对象易维护、易复用、易扩展
面向对象
优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护
缺点:性能比面向过程低
特点:封装、继承、多态
面向对象思维特点:
1.抽取对象共用的属性和行为组织(封装)成一个类(模板)
2.对类型进行实例化,获取类的对象
创建面向对象的几种方法
1.对象字面量创建
代码如:
var cat = new Object()
cat.color = "白色"
cat.pinz = "布偶"
cat.xinq = function() {
console.log("吃")
}
cat.xinq()
console.log(cat.color, cat.pinz)
// 简写
var cat_1 = {
color: "黄色",
pinz: "大橘",
xinq: function() {
console.log("跑")
}
}
cat_1.xinq()
console.log(cat_1.color, cat_1.pinz, )
console.log("-------------------------")
2.工厂函数
function createCat(cColor, cPi) {
return {
color: cColor,
pinz: cPi,
// 行为
xi: function() {
console.log("捉老鼠")
}
}
}
var c1 = createCat("灰色", "田园猫")
c1.xi()
console.log(c1.color, c1.pinz)
3.构造函数
function Student(stuid, stuname) {
this.stuid = stuid
this.stuname = stuname
this.study = function() {
console.log("学!!!卷!!!!")
}
}
// 实例化一个对象,使用new来实例化
var stu_1 = new Student("1001", "sshjos")
stu_1.study()
console.log(stu_1.stuid)
console.log(stu_1 instanceof Student)