1、OOP指什么,有哪些特性?
OOP(Object Oriented Programming),面向?qū)ο蟪绦蛟O計,是一種計算機編程架構(gòu)。
OOP特性:
封裝性:將一個類的使用和實現(xiàn)分開,只保留部分接口和方法與外部聯(lián)系。
繼承性:子類自動繼承其父級類中的屬性和方法,并可以添加新的屬性和方法或者對部分屬性和方法進行重寫。
多態(tài):允許不同類的對象對同一消息作出不同響應(對象可通過傳遞不同參數(shù)實現(xiàn)相同的動作)。
2、如何通過構(gòu)造函數(shù)的方式創(chuàng)建一個擁有屬性和方法的對象?
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 是什么?有什么特性?
每個函數(shù)都有一個prototype屬性,指向原型對象。
每個對象都有個內(nèi)部屬性proto,指向構(gòu)造函數(shù)的prototype屬性。
4、代碼的原型圖

原型.png
5、以下代碼中的變量age區(qū)別
function People (){
var age = 1 // 函數(shù)People的局部變量age
this.age = 10; //實例變量,通過People函數(shù)創(chuàng)建的實例可以訪問此變量
}
People.age = 20; //People的age屬性
People.prototype.age = 30; //People對象的原型上的屬性