我想知道cleanNum在以下代码中的含义。它是函数名称还是代表其他东西?
//code snippet 1
var creditCard = {
cleanNum : function(number){
return number.replace(/[- ]/g,"");
}
};
Q1。我没有得到cleanNum的含义。能否解释一下cleanNum()的重要性。
Q2。如果我在另一个名为another_func()的函数中使用它,我该如何调用代码片段1?
以下代码段是否与上述相同?
//code snippet 2
function cleanNum(number){
//sample code
}
答案 0 :(得分:1)
对我来说,代码实际上没有使用此错误进行编译:
Uncaught SyntaxError: Unexpected token :
我认为你的意图是
var cleanNum = function(number){
return number.replace(/[- ]/g,"");
}
这与其他方式类似,称为函数声明。不同之处在于加载代码的时间。当声明函数cleanNum(){...}之类的函数时,该代码在任何代码执行之前加载,而表达式(在上面的代码块中看到)在执行期间加载。如果您在加载之前尝试调用它,则会触发错误。
修改强>
刚看到对代码块的编辑。当你这样做时:
var creditCard =
{
cleanNum : function(number){ return number.replace(/[- ]/g,"");
}
}
您在creditCard对象下存储cleanNum,并且要调用它,您必须使用
creditCard.cleanNum(param)
这与原始版本不同,因为您可以直接通过
访问它cleanNum(param)
答案 1 :(得分:1)
我想知道cleanNum在以下代码中的含义。它是函数名称还是代表其他东西?
它只是一个功能名称
Q1。我没有得到cleanNum的含义。能否解释一下cleanNum()的重要性。
cleanNum()
只有一个function
名称位于namespacecreditCard
下。
Q2。如果我在另一个名为another_func()的函数中使用它,我该如何调用代码片段1?
您可以通过
调用该功能creditCard.cleanNum(numbr)
以下代码段是否与上述相同?
不,不是
要详细了解 javascript中的命名空间:click here
答案 2 :(得分:1)
Q1。我没有得到cleanNum的含义。能否解释一下cleanNum()的重要性。
cleanNum
是在object元素中使用匿名函数定义的函数名。该函数将通过删除其中的破折号(" - ")来清除number
。我猜这将是信用卡号码,因此它会输入类似于1-2345-6789-01-2
的内容,然后只返回数字(无破折号),在这种情况下将是123456789012
。
Q2。如果我在另一个名为another_func()的函数中使用它,我该如何调用代码片段1?
您可以使用
进行调用creditCard.cleanNum(number);
希望有所帮助,
答案 3 :(得分:1)
第一件事:var x = {}
定义一个新对象,{}内声明的每个变量都成为该对象的一个字段。
以下内容将使用字段编号
创建一个对象(由变量creditCard
引用)
var creditCard = {
number: '3432-2342-34243'
};
对于Q1,cleanNum的重要性在于它是对象creditCard
的成员。它不包含int / string / date等,而是包含function
var creditCard = {
cleanNum : function(number){
return number.replace(/[- ]/g,"");
}
};
对于Q2,函数本身是相同的,只有范围不是。直接定义时,它可以直接访问,如果在对象内部定义,则只能通过该对象访问:
creditCard.cleanNum(somenumber);
更进一步,为了证明函数本身只是一个函数,你可以在creditCard之外定义函数并重用你对象中的函数:
function cleanNumGlobal(number){
return number.replace(/[- ]/g,"");
}
var creditCard = {
cleanNum : cleanNumGlobal
};
//both call the same function:
console.log(cleanNumGlobal('2432-2423-234'));
console.log(creditCard.cleanNum('2432-2423-234'));
作为旁注:通常像这样的函数会使用对象本身的属性,因此它不使用参数编号,而是使用对象本身的属性number
(或清除数字)设置该属性)。但这是问题的范围;)
答案 4 :(得分:0)
您可以通过两种方式定义cleanNum函数:
1)function cleanNum(number) { }
这样,在代码执行开始之前,cleanNum被加载到内存中。你可能不需要这个。
2)cleanNum=function(number) { }
这样,每次调用cleanNum都会加载到内存中。
您还可以使用以下方式访问cleanNum函数:
creditCard.cleanNum(number)