1吹菱, OOP 指什么?有哪些特性
OOP
是Object Oriented Programming 縮寫彭则,面向?qū)ο缶幊蹋?br>
是目前主流的編程范式鳍刷。
是一種思維方式
三大特點:繼承,多態(tài)俯抖,封裝
幾個概念: 類输瓜,對象,屬性芬萍,方法尤揣,成員,類成員柬祠,實例成員北戏,靜態(tài)類,抽象類
2漫蛔,如何通過構(gòu)造函數(shù)的方式創(chuàng)建一個擁有屬性和方法的對象?
function Person(name,age) {
this.name = name;
this.age = age;
this.sayName = function () {
console.log(this.name);
}
}
var p1 = new Person('deejay',21);
p1.sayName();
3嗜愈, prototype 是什么旧蛾?有什么特性
每個函數(shù)都是一個Function對象,F(xiàn)unction對象都有一個prototype對象蠕嫁。prototype表示的是函數(shù)的原型锨天。當(dāng)這個函數(shù)作為構(gòu)造函數(shù)創(chuàng)建出實例對象時,實例的__proto__屬性就等于這個函數(shù)的prototype
prototype相當(dāng)于是一個公共容器剃毒,供所有實例訪問病袄,節(jié)省空間。當(dāng)實例對象本身沒有某個屬性或方法的時候赘阀,它會到構(gòu)造函數(shù)的 prototype 屬性 指向的對象益缠,去尋找該屬性或方法。如果實例對象自身就有某個屬性或方法纤壁,它就不會再去原型對象尋找這個屬性或方法。
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('deejay');
var p2 = new People('前端');
1.png
5,創(chuàng)建一個 Car 對象酌媒,擁有屬性name、color迄靠、status秒咨;擁有方法run,stop掌挚,getStatus
function ClassCar(name,color,status) {
this.name = name;
this.color = color;
this.status = status;
this.run = function () {};
this.stop = function () {};
this.getStatus = function () {};
}
var Car = new ClassCar('name','color','status');
6,創(chuàng)建一個 GoTop 對象雨席,當(dāng) new 一個 GotTop 對象則會在頁面上創(chuàng)建一個回到頂部的元素,點擊頁面滾動到頂部吠式。擁有以下屬性和方法
1. `ct`屬性陡厘,GoTop 對應(yīng)的 DOM 元素的容器
2. `target`屬性, GoTop 對應(yīng)的 DOM 元素
3. `bindEvent` 方法特占, 用于綁定事件
4 `createNode` 方法糙置, 用于在容器內(nèi)創(chuàng)建節(jié)點