// 建立一個類 var Student = function(name,sexy) { this.name = name this.sexy = sexy } // 使用new函數名(參數)初始化一個類的實例 // 此時s1是類的一個實例,引用的是一個Student類型,s1數據類型爲Student類 var s1 = new Student('01', 'man') // 能夠建立多個互相獨立的實例 ar s2 = new Student() var s3 = new Student() s2.name = '02' s3.name = '03' // 能夠給類增長一些方法(函數) Student.prototype.methodName = function() { // } Student.prototype.update = function(name, sexy) { this.name = name this.sexy = sexy } log(s2.name, s3.name) // 實例調用方法 s1.update('06', 'woman') // 實際上至關於 // Student.update(s1, 'xiao', 'woman') // 封裝, 把須要作的操做作好,須要用的時候能夠簡單調用就行,上面update 就是封裝的例子 // 非封裝例子 // 修改s1相關屬性時若是不封裝則修改屬性時都須要使用點語法 s1.attributeName // 數據量多了例如須要修改的屬性多了那操做起來就很麻煩了 s1.name = '001' s1.sexy = 'man' // 使用了封裝,則只須要調用一下這個函數就行,把須要修改的值做爲參數傳入函數就行 s1.update('001', 'man')
// this 表明的是函數前邊那個點左邊的那個東西函數
Student.prototype.update = function(name, sexy) {
this.name = name
this.sexy = sexy
}
var obj = new Student();this
// 此時 this 表明的就是 update()函數 前邊的點的左邊的obj
obj.update('07', 'woman')spa