类与面向对象
// 创建一个类 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 代表的就是 update()函数 前边的点的左边的obj
obj.update('07', 'woman')
浙公网安备 33010602011771号