1. 程式人生 > >通俗易懂的理解js的面向物件

通俗易懂的理解js的面向物件

1.在js的j世界裡一般會把建構函式看成一個面向物件,其實面向物件從表面意思理解是面向全域性的一個物件,建構函式就是那個面向全域性的物件(函式本身就是一個物件)

2.什麼樣的是建構函式,一般首字母大寫的可以看成是建構函式(如果不是想定義建構函式誰沒事把首字母大寫啊~~)

通俗的理解:

你可以把建構函式他當成一個陶瓷工坊(Shop),這個工坊面向所有人的(面向物件),哪一天你突然來興趣了想做一個陶瓷杯子,但是這家店有個規矩你想用我可以,必須成為我們的會員,辦一個新會員(new Shop()),每個想進來的人都要(new Shop())一下,成為新會員後,你就可以做自己喜歡的杯子了,這個杯子的形狀,顏色你都可以按自己的喜好來,當然每個人的喜好不同所以這些屬性都不是固定的。(所以這就不難理解建構函式裡面的this總是指向當前構造它的例項物件,因為當然是誰製造了它它就跟誰了)

我們都知道一個東西不僅有屬性還會有功能,比如說杯子是用來喝水的

function Shop(color,shap){

  this.color=color;

  this.shap=shap;

  this.drink=function(){

    console.log(‘我能夠喝水’);

  }

}

var my=new Shop('red',‘圓’);//此時建構函式裡面的this是指向my

var mother=new Shop('blue','長方形');//此時建構函式裡面的this是指向mother

此時有一個疑問my.drink==mother.drink嗎?

答案當然是否定的了,因為他們都不是一個媽媽生的即使都會吃喝拉撒那也不是同一個人吧,同理這裡也是一樣;