對象,從哲學理論(博主不是在吹,哲學思想很重要)上講十分抽象,你們確定據說過一切皆是對象這句話。咱們看到的任何東西均可以是對象,好比電視機,電腦,空調,洗衣機。。等等咱們並不知道電視機裏面構造是啥 咱們會用就行,就像咱們不須要知道Date對象裏面是啥,咱們知道它是獲取日期的就行。其實對象這個概念來源於生活,就像你去飯店吃飯同樣,吩咐廚師來一碗蘇格蘭打滷麪,你根本不須要知道蘇格蘭打滷麪怎麼作的,你只要知道廚師會作就行,經過調用(指揮)廚師就能獲取你想要的東西(面)。
var person = new Object(); person.name = '張三'; person.age = 23; person.showName = function(){ alert("個人名字叫"+this.name) } person.showAge = function(){ alert("個人年齡是"+this.age+"歲") } person.showName();//個人名字叫張三 person.showAge();//個人年齡是23歲
var person = new Object(); person.name = '張三'; person.age = 23; person.showName = function(){ alert("個人名字叫"+this.name) } person.showAge = function(){ alert("個人年齡是"+this.age+"歲") } person.showName();//個人名字叫張三 person.showAge();//個人年齡是23歲 //................................. var person1 = new Object(); person1.name = '李四'; person1.age = 24; person1.showName = function(){ alert("個人名字叫"+this.name) } person1.showAge = function(){ alert("個人年齡是"+this.age+"歲") } person1.showName();//個人名字叫李四 person1.showAge();//個人年齡是24歲
function Createperson(name,age){ //原料 var Person = new Object(); //加工 Person.name = name; Person.age = age; Person.showName = function(){ alert("個人名字叫"+this.name) } Person.showAge = function(){ alert("個人年齡是"+this.age+"歲") } //出廠 return Person; } var person = Createperson('張三',23) person.showName();//個人名字叫張三 person.showAge();//個人年齡是23歲 //................................. var person1 = Createperson('李四',24) person1.showName();//個人名字叫李四 person1.showAge();//個人年齡是24歲
- 構造函數:Createperson函數在這裏有一個別名叫作構造函數,爲何呢?由於它是專門用來生成對象的。
- 屬性:構造函數裏面的name和age叫作屬性,其實屬性和變量是一個概念,只不過變量是自由的,而屬性是屬於一個對象的,
- 工廠方式:建立對象的方式有不少種,而這裏運用的是工廠方式,就是原料>加工>出廠的過程。
function show (){ alert(this); } show()//window new show()//Object //也就是說當沒有new 的時候,this是指向window的,由於這個方法自己就屬於window,而當添加上new的時候此時this指向的是一個新的對象
function Createperson(name,age){ //var Person = new Object(); this.name = name; this.age = age; this.showName = function(){ alert("個人名字叫"+this.name) } this.showAge = function(){ alert("個人年齡是"+this.age+"歲") } //return Person; } var person = new Createperson('張三',23) person.showName();//個人名字叫張三 person.showAge();//個人年齡是23歲 //................................. var person1 = new Createperson('李四',24) person1.showName();//個人名字叫李四 person1.showAge();//個人年齡是24歲
function Createperson(name,age){ //var Person = new Object(); //瀏覽器會偷偷的這樣作 var this = new Object(); this.name = name; this.age = age; this.showName = function(){ alert("個人名字叫"+this.name) } this.showAge = function(){ alert("個人年齡是"+this.age+"歲") } //return Person; //瀏覽器偷偷的return this } var person = new Createperson('張三',23) person.showName();//個人名字叫張三 person.showAge();//個人年齡是23歲 //................................. var person1 = new Createperson('李四',24) person1.showName();//個人名字叫李四 person1.showAge();//個人年齡是24歲
- 原型:什麼是原型呢?其實原型咱們以前接觸過,可能你沒有很深的概念,在css中咱們給一組元素添加樣式會用到class,給一個元素添加樣式可能會用到行間樣式,然而在js中給一組對象添加方法就叫作原型,例以下面一個簡單的例子
var arr1 = new Array(1,2,3); var arr2 = new Array(1,2,4); arr1.sum = function(){ var result = 0; for(var i =0;i<this.length; i++){ result += this[i]; } return result; } alert(arr1.sum())//6 alert(arr2.sum())//arr2.sum is not a function
var arr1 = new Array(1,2,3); var arr2 = new Array(1,2,8); Array.prototype.sum= function(){ var result = 0; for(var i =0;i<this.length; i++){ result += this[i]; } return result; } alert(arr1.sum())//6 alert(arr2.sum())//11
- 類 什麼是類呢 類其實就是一個模子 Array ,Date就是類 也能夠管類叫作構造函數 模子的做用是成產產品,而類的做用是生產對象
就像var arr = new Array();那麼arr就是成產出來的對象(產品),Array就是模子(類)
function Createperson(name,age){ //var Person = new Object(); this.name = name; this.age = age; } Createperson.prototype.showName = function(){ alert("個人名字叫"+this.name) } Createperson.prototype.showAge = function(){ alert("個人年齡是"+this.age+"歲") } var person = new Createperson('張三',23) person.showName();//個人名字叫張三 person.showAge();//個人年齡是23歲 //................................. var person1 = new Createperson('李四',24) person1.showName();//個人名字叫李四 person1.showAge();//個人年齡是24歲
有任何疑問能夠進羣4744717759交流謝謝。2017-3-18-00:16javascript