Javascript 如何将对象用作函数和对象?
尝试在JavaScript中创建一个“类”,该类既可以在类的根上有一个函数,也可以在其他子函数上有一个函数:Javascript 如何将对象用作函数和对象?,javascript,closures,Javascript,Closures,尝试在JavaScript中创建一个“类”,该类既可以在类的根上有一个函数,也可以在其他子函数上有一个函数: Validate(word)-如果单词经过验证,则返回true或false Validate.getRule()-返回用于验证单词的规则 下面是示例代码: var Validate = function (word) { this.rule = /^[a-m]$/; if (word) { return this.rule.test(word); } el
Validate(word)
-如果单词经过验证,则返回true或false
Validate.getRule()
-返回用于验证单词的规则
下面是示例代码:
var Validate = function (word)
{
this.rule = /^[a-m]$/;
if (word)
{
return this.rule.test(word);
}
else
{
return {
getRule : function()
{ return this.rule;}
};
}
}();
如果您第一次调用它时没有参数,这会起作用,但第二次出现以下错误:
TypeError: object is not a function
您有范围问题
var Validate = function (word)
{
var that = this;
this.rule = /^[a-m]$/;
if (word)
{
return this.rule.test(word);
}
else
{
return {
getRule : function()
{ return that.rule;}
};
}
}();
您有范围问题
var Validate = function (word)
{
var that = this;
this.rule = /^[a-m]$/;
if (word)
{
return this.rule.test(word);
}
else
{
return {
getRule : function()
{ return that.rule;}
};
}
}();
直接调用函数时,
word
参数始终未定义,此
是全局范围(窗口
),因此代码的作用与:
var rule = /^[a-m]$/;
var Validate = {
getRule: function() { return this.rule; }
};
如果希望某个对象同时作为函数和对象工作,请声明该函数,然后向其添加属性(因为函数实际上是对象):
直接调用函数时,
word
参数始终未定义,此
是全局范围(窗口
),因此代码的作用与:
var rule = /^[a-m]$/;
var Validate = {
getRule: function() { return this.rule; }
};
如果希望某个对象同时作为函数和对象工作,请声明该函数,然后向其添加属性(因为函数实际上是对象):
你想如何在语法上使用它?你想如何在语法上使用它?请告诉我:)我想补充一点,就可伸缩性和可维护性而言,这并不是构造代码的好方法-但这可能不是一个问题(我知道这不是问题的一部分)<代码>验证(“asfd”)给出
TypeError:Validate不是一个函数
击败我:)我想补充一点,就可伸缩性和可维护性而言,这并不是构建代码的好方法-但这可能不是一个问题(我知道这不是问题的一部分)<代码>验证(“asfd”)给出类型错误:验证不是一个函数