1.OOP 指什么沐鼠?有哪些特性
OPP是指面向?qū)ο缶幊?Object Oriented Programmin)威恼,主要是為了編程重用性、靈活性和擴(kuò)展性。其中最重要的兩個(gè)概念是類和對(duì)象押逼。
特效
- 封裝:將一個(gè)類的使用和實(shí)現(xiàn)分開,只保留部分接口和方法與外部聯(lián)系惦界。
- 繼承:子類有父類的屬性和方法
- 多態(tài):子類繼承父類的屬性和方法的同時(shí)可以對(duì)屬性和方法進(jìn)行重寫
參考:
阮一峰的面向?qū)ο蠊P記
2.如何通過(guò)構(gòu)造函數(shù)的方式創(chuàng)建一個(gè)擁有屬性和方法的對(duì)象?
function Cat(name,sex){
this.name = name;
this.sex = sex;
}
Cat.prototype.eat = 'fish';
Cat.prototype.love = function(){
console.log('sleep')
}
var mycat = new Cat('jane','girl');
mycat.name;
3. prototype 是什么挑格?有什么特性
Javascript規(guī)定,每一個(gè)構(gòu)造函數(shù)都有一個(gè)prototype屬性沾歪,指向另一個(gè)對(duì)象漂彤。這個(gè)對(duì)象的所有屬性和方法,都會(huì)被構(gòu)造函數(shù)的實(shí)例繼承灾搏。
這意味著挫望,我們可以把那些不變的屬性和方法,直接定義在prototype對(duì)象上
4. 畫出以下代碼原型圖
function People(name){
this.name = name;
this.sayName = function(){
console.log('my name is: ' + this.name
}
}
People.prototype.walk = function(){
console.log(this.name + 'is walking');
}
var p1 = new People('饑人谷');
var p2 = new People('前端');
5. 創(chuàng)建一個(gè) Car 對(duì)象狂窑,擁有屬性name媳板、color、status泉哈;擁有方法run蛉幸,stop破讨,getStatus
function Car(name,color,status){
this.name = name;
this.color = color;
this.status = status;
}
Car.prototype.run = function(){
console.log('you choose run!')
}
Car.prototype.stop = function(){
console.log('you choose stop!')
}
Car.prototype.getStatus = function(){
console.log(this.status)
}
var car = new Car('Baoma','red','good')