類與面向對象

 

// 建立一個類
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

相關文章
相關標籤/搜索