链式调用和在原型上添加方法
Function.prototype.addMethod = function(name,fn){
this[name] = fn
return this //链式增加
}
var methods = new Function()
methods.addMethod('checkName',function(){
//验证用户名
console.log('name')
return this
}).addMethod('checkEmail',function(){
//验证邮箱
console.log('email')
return this
})
methods.checkName().checkEmail()
//类式调用
var m = new methods()
console.log(m)
类与封装
需要了解的概念:对象的私有属性,私有方法,特权方法,构造器,公有方法和公有属性。 以及类的公有属性,公有方法以及静态公有属性和静态公有方法。
var Book = function(id,name){
//类私有属性
var num = 1;
//类私有方法
function checkId(){}
//特权方法(特殊的对象公有方法 因为可以访问类的私有属性 权力较大)
this.getId = function(){}
this.setId = function(){}
this.getName = function(){}
this.setName = function(){}
//对象公有属性
this.id = id
//对象公有方法
this.copy = function(){}
//构造器
this.setName(name)
}
//类静态公有属性(对象不能访问)
Book.isChinese = true
//类静态公有方法(对象不能访问)
Book.resetTime = function(){
console.log('new term')
}
Book.prototype = {
//公有属性
isJSBook:false,
//公有方法
display:function(){}
}
//用闭包实现
var Student = (function(){
//静态私有变量
var id = 0;
//静态私有方法
function checkID(){}
function _student(name,age){
//私有变量
var name;
//私有方法
function walk(){}
//特权方法
this.getName = function(){}
//公有属性和公有方法
this.age = age
this.like = function(){}
}
_student.prototype = {
isJSBook:false,
display:function(){}
}
return _book
})()