类与面向对象

 

// 建立一个类
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

相关文章
相关标签/搜索