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