1权她、OOP指什么晤揣,有哪些特性旗芬?
OOP(Object Oriented Programming),面向?qū)ο蟪绦蛟O(shè)計(jì),是一種計(jì)算機(jī)編程架構(gòu)升敲。
OOP特性:
封裝性:將一個(gè)類(lèi)的使用和實(shí)現(xiàn)分開(kāi)答倡,只保留部分接口和方法與外部聯(lián)系。
繼承性:子類(lèi)自動(dòng)繼承其父級(jí)類(lèi)中的屬性和方法驴党,并可以添加新的屬性和方法或者對(duì)部分屬性和方法進(jìn)行重寫(xiě)瘪撇。
多態(tài):允許不同類(lèi)的對(duì)象對(duì)同一消息作出不同響應(yīng)(對(duì)象可通過(guò)傳遞不同參數(shù)實(shí)現(xiàn)相同的動(dòng)作)。
2、如何通過(guò)構(gòu)造函數(shù)的方式創(chuàng)建一個(gè)擁有屬性和方法的對(duì)象?
function Person(name){
this.name = name;
this.sayName = function(){
console.log('Name is ' + this.name)
}
}
var Person1 = new Person('Yun');
Person1.name; //Yun
Person1.sayName(); //Name is Yun
3倔既、prototype 是什么恕曲?有什么特性?
每個(gè)函數(shù)都有一個(gè)prototype屬性渤涌,指向原型對(duì)象佩谣。
每個(gè)對(duì)象都有個(gè)內(nèi)部屬性proto,指向構(gòu)造函數(shù)的prototype屬性实蓬。
4茸俭、代碼的原型圖
原型.png
5、以下代碼中的變量age區(qū)別
function People (){
var age = 1 // 函數(shù)People的局部變量age
this.age = 10; //實(shí)例變量安皱,通過(guò)People函數(shù)創(chuàng)建的實(shí)例可以訪問(wèn)此變量
}
People.age = 20; //People的age屬性
People.prototype.age = 30; //People對(duì)象的原型上的屬性