https://www.cnblogs.com/staven/p/5319482.html
=========================返回对象:可以将这些方法放在一个函数对象中返回=================
---------类方式:------------
var checkObject = function(){
this.checkName = function(){
console.log('检查用户名');
}
this.checkEmail = function(){
console.log('检查邮箱地址');
}
this.checkPassword = function(){
console.log('检查密码');
}
}
var checkObj =new checkObject();
checkObj.checkName();
====================================================================================================
实现JavaScript自定义函数的整合、链式调用及类的封装
---------------函数声明形式:表单验证函数------------------
function checkName(){
console.log('检查用户名');
}
function checkEmail(){
console.log('检查邮箱地址');
}
function checkPassword(){
console.log('检查密码');
}
checkName();
checkEmail();
checkPassword();
在团队开发中定义函数容易覆盖他人已经定义过的函数,将函数保存在一个变量里,这样就减少了原有功能被覆盖的风险。
----------------------函数字面量形式:--------------------
var checkName = function(){
console.log('检查用户名');
}
var checkEmail = function(){
console.log('检查邮箱地址');
}
var checkPassword = function(){
console.log('检查密码');
}
checkName();
checkEmail();
checkPassword();
------------------对象属性形式:利用对象具有属性与方法的特性。 -------------------
var checkObject = {
checkName:function(){
console.log('检查用户名');
},
checkEmail:function(){
console.log('检查邮箱地址');
},
checkPassword:function(){
console.log('检查密码');
}
};
checkObject.checkName();
checkObject.checkEmail();
checkObject.checkPassword();
-------------------------对象赋值形式:对象的另一种创建形式。---------------
var checkObject = function(){};
//var checkObject ={};
checkObject.checkName = function(){
console.log('检查用户名');
}
checkObject.checkEmail = function(){
console.log('检查邮箱地址');
}
checkObject.checkPassword = function(){
console.log('检查密码');
}
checkObject.checkName();
checkObject.checkEmail();
checkObject.checkPassword();
--------------------返回对象:可以将这些方法放在一个函数对象中返回--------------
var checkObject = function(){
return {
checkName : function(){
console.log('检查用户名');
},
checkEmail: function(){
console.log('检查邮箱地址');
},
checkPassword: function(){
console.log('检查密码');
}
}
};
var a = new checkObject();
a.checkName();
a.checkEmail();
a.checkPassword();
每次调用这个函数时,都返回一个新对象,返回的checkObj对象与checkObject对象没有任何关系。
---------类方式:------------
var checkObject = function(){
this.checkName = function(){
console.log('检查用户名');
}
this.checkEmail = function(){
console.log('检查邮箱地址');
}
this.checkPassword = function(){
console.log('检查密码');
}
}
var checkObj =new checkObject();
checkObj.checkName();
每次通过new关键词创建新对象的时候,都会对类的this上的属性进行复制, 造成了不必要的内存消耗。
------------prototype原型:查找绑定方法-------------------
var checkObject = function(){};
checkObject.prototype.checkName = function(){
console.log('检查用户名');
}
checkObject.prototype.checkEmail = function(){
console.log('检查邮箱地址');
}
checkObject.prototype.checkPassword = function(){
console.log('检查密码');
}
---------------------链式调用:声明的每个方法末尾将当前对象返回。--------------
var checkObject = {
checkName : function(){
//验证姓名
return this;
},
checkEmail : function(){
//验证邮箱
return this;
},
checkPassword : function(){
//验证密码
return this;
}
}
链式调用:
checkObject.checkName().checkEmail().checkPassword();
放在原型对象里:
var checkObject = function(){};
checkObject.prototype = {
checkName : function(){
//验证姓名
return this;
},
checkEmail : function(){
//验证邮箱
return this;
},
checkPassword : function(){
//验证密码
return this;
}
}
链式调用:
var checkObj = new checkObject();
checkObj.checkName().checkEmail().checkPassword();