js函数创建

js学习

#函数

第一版

function checkName(){}

function checkEmail(){}

或者

var checkName = function(){}
var checkEmail = function(){}

问题:这么编写函数创建了很多全局变量,(js中一切皆对象),会影响到别的别的功能,函数覆盖。

第二版

针对创建多个全局变量,简单结局方案是将这些变量保存到一个变量里面 减少覆盖风险

例如:

var CheckObject = {
	checkName : function(){},
	checkEmail:function(){},
	chencPassword:function(){}
}

或者(先声明对象 在给对象添加方法)
var CheckObject = function(){};
CheckObject .checkName = function(){};
CheckObject .checkEmail= function(){};
CheckObject .chencPassword= function(){};

这样全局对象变为一个。调用方式也简单 CheckObject.checkName();

第三版

前面那种方案,新创建的对象不能继承这些检查方法。没有this概念

var CheckObject = function(){
	return {
		checkName : function(){},
		checkEmail:function(){},
		chencPassword:function(){}
	}
}

第四版

采用类的方式

var CheckObject = function(){
		this.checkName = function(){}
		this.checkEmail = function(){}
		this.checkPassword = function(){}
}
然后使用new 关键字创建对象
var a = new CheckObject ();
a.checkName();

采用类创建对象,每个对象实例都有一套自己的方法。(其实这些方式只需要一份就行了)

第五版

通过this定义,每次new创建对象的时候,新创建的对象都会对类的this属性进行赋值。然而有些属性和方法没有必要为每个对象创建一遍。

var CheckObject = function(){};
CheckObject .prototype.checkName = function(){};
CheckObject .prototype.checkEmail= function(){};
CheckObject .prototype.chencPassword= function(){};

链式调用

var CheckObject = {
	checkName : function(){ return this},
	checkEmail:function(){return this},
	chencPassword:function(){return this}
}

调用方式有之前的

var a  = new CheckObject();
a.checkName();
a.checkEmail();
a.checkPassword();

变换为

CheckObject .checkName().checkEmail().checkPassword();

原型对象也可以操作

var CheckObject = function(){};
CheckObject .prototype = {
	checkName : function(){ 
		return this;
		},
	checkEmail:function(){
		return this;
		},
	checkPassword:function(){
	return this;
	}
}

使用方式变化为:

var a = new CheckObject();
a.checkName().checkEmail().checkPassword();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值