各位大侠们,小弟有段是用js实现的过滤器链的代码,但总报错,请各位帮忙找找问题。function ValidateExcute(){
this.ValidateArr = new Array();
this.ValidateCount = 0;
this.addValidate=function(validate){
this.ValidateArr[this.ValidateCount++] = validate;
}
this.validate=function(){
alert("00000");
alert(this.ValidateArr.toString()); alert("99999");
}
}function Validate(){
this.validate = function(){
alert(validate);
}
}
var v = new ValidateExcute();v.addValidate(new Validate());
v.addValidate(new Validate());
v.validate();
this.ValidateArr = new Array();
this.ValidateCount = 0;
this.addValidate=function(validate){
this.ValidateArr[this.ValidateCount++] = validate;
}
this.validate=function(){
alert("00000");
alert(this.ValidateArr.toString()); alert("99999");
}
}function Validate(){
this.validate = function(){
alert(validate);
}
}
var v = new ValidateExcute();v.addValidate(new Validate());
v.addValidate(new Validate());
v.validate();
解决方案 »
- radio选中后的效果问题,求救啊~~~~~~~~~~~~~~~~
- 能不能写一个页面或一个函数捕获另一个页面的动作
- 如何关闭其他三个网页?
- ???javascript实现改变背景颜色的效果
- 看不懂的正则表达式的pattern
- js:怎么正则判断数组重复--大师请进
- 放分100﹐紧急求助(xmlhttp调用send方法 参数错误?)
- checkbox的检验问题,急!
- 请问两个问题:Iframe的reload()和onclick="javascript:a=1;b=2" 的转变
- 十万火急!javascript能否调用activeX?怎么调?只有这么多分了,但会不断吐血给分!
- JavaScript连接数据库,能连接,执行没结果
- JS能判断判断出WINDOWS的消息类型吗?
function ValidateExcute(){
var _this = this;
_this.ValidateArr = new Array();
_this.ValidateCount = 0;
_this.addValidate=function(validate){
_this.ValidateArr[_this.ValidateCount++] = validate;
}
_this.validate=function(){
alert("00000");
alert(_this.ValidateArr.toString()); alert("99999");
}
}function Validate(){
this.validate = function(){
alert(validate);//这里你要干什么?不明白
}
}
对js的oop不太了解,不太清楚他能不能转换类型。
报错应该是没找到validate函数才对,但我在Validate中定义了validate函数的,所以不明白了。
alert(validate);错了,哎,本想 alert('validate');的,给各位添麻烦了
function ValidateExcute(){
var _this = this;//这句是个关键
_this.ValidateArr = new Array();
_this.ValidateCount = 0;
_this.addValidate=function(validate){
//你的问题是对this关键字还不是很了解造成的
//如果你这里写的是this而非_this的话,this指向的是addValidate()函数
//而不是你希望的指向ValidateExcute()
_this.ValidateArr[_this.ValidateCount++] = validate;
}
_this.validate=function(){
alert(_this.ValidateArr.toString());
}
}
function Validate(){
this.validate = function(){
//TODO
}
}
var v = new ValidateExcute();
v.addValidate(new Validate());
v.addValidate(new Validate());
v.validate();