用函数创建对象
var CheckObject = function(){}; CheckObject.checkName = function(){ // 检验姓名 }; CheckObject.checkEmail = function(){ // 检验邮箱 }; CheckObject.checkPassword = function(){ // 检验密码 } // 如果想方便复用的话: var CheckObject = function(){ return checkName:function(){ // 检验姓名 }; return checkEmail:function(){ // 检验邮箱 }; return checkPassword:function(){ // 检验密码 }; } var a = CheckObject(); a.checkName();
用类创建对象
var CheckObject = function(){ this.checkName:function(){ // 检验姓名 }; this.checkEmail:function(){ // 检验邮箱 }; this.checkPassword:function(){ // 检验密码 }; } var a = new CheckObject(); a.checkName();
用这种方式创建对象缺点:新创建的对象都会对类的this上的属性方法进行复制,这样是非常消耗的。
所以使用prototype绑定方法:
var CheckObject = function(){} CheckObject.prototype = { checkName:function(){ // 检验姓名 }; checkEmail:function(){ // 检验邮箱 }; checkPassword:function(){ // 检验密码 }; } var a = new CheckObject(); a.checkName();
So:使用prototype绑定方法,可以避免每实例化一个对象时都会对类的this上的属性方法进行复制。因为它们最终都指向了类的对象原型prototype上的方法。