Drenched_belief
2016-10-01 21:38:05
請看:舉個例子:? function Book(title,pages,isbn){????????this.title = title;????????this.pages = pages;????????this.isbn = isbn;}資料中說:對象是類的實例,例如我們聲明了一個類來表示書。我目前的理解,上面的代碼就是一個函數,title,pages, isbn是它的參數。 類是什么意思? 上面的只是聲明了一個函數而已啊,為什么說聲明一個類?
8 回答

輸輸輸
TA貢獻22條經驗 獲得超21個贊
function?Book(title,pages,isbn){ ????this.title?=?title; ????this.pages?=?pages; ????this.isbn?=?isbn; } var?b1?=?Book(1,?2,?3);??????//?Book?是函數 var?b2?=?new?Book(4,?5,?6);??//?Book?是類 console.log(b1.title);?//?TypeError:?Cannot?read?property?'title'?of?undefined console.log(b2.title);?//?4
這樣,就區分了類與函數

Simon站起來
TA貢獻5條經驗 獲得超1個贊
你的理解是對的,看到評論就知道很多人對這個理解錯了,js中沒有嚴格意義上類的概念,但它有構造函數的概念,就是首字母大寫的函數(當然也可以小寫,但這是規范問題),有了構造函數也就是說你可以通過new的方式來得到實例,那么這個實例就可以訪問,title,pages,isbn等形參了。這個就是創造對象的方法之一,另外一種方式是工廠模式,你也可以結合起來理解。

大咪
TA貢獻785條經驗 獲得超332個贊
不要想那么難,所謂的javascript里的類和java一樣,你要知道對應的就是type這個英文單詞,而類即使類型的簡稱而已。。。聲明了一個函數就是你相當于定義了書這個類型。。并把它作為函數去使用了而已。。。

stone310
TA貢獻361條經驗 獲得超191個贊
先理解這一段話:任何函數,function aaa(){},當創建var b=new aaa()的時候,b的實例指向a的原型,(b可以調用a的屬性和方法)這時我們把aaa函數稱為構造函數,構造函數首個字母一般用大寫表示,所以我們這么寫:function Aaa(){};
然后JS本身并沒有類的概念,但是我們用構造函數可以模擬出類的效果,所以你可以把構造函數看成類;
添加回答
舉報
0/150
提交
取消