var card= cleanNum: function().... 这个 cleanNum: 是啥意思?
Posted
技术标签:
【中文标题】var card= cleanNum: function().... 这个 cleanNum: 是啥意思?【英文标题】:var card= cleanNum: function().... what does this cleanNum: mean?var card= cleanNum: function().... 这个 cleanNum: 是什么意思? 【发布时间】:2016-01-08 04:18:46 【问题描述】:我想知道下面代码中的 cleanNum 是什么意思。是函数名还是代表什么?
//code snippet 1
var creditCard =
cleanNum : function(number)
return number.replace(/[- ]/g,"");
;
第一季度。我不明白 cleanNum 的含义。你能解释一下cleanNum()的意义吗?
第二季度。如果我在另一个名为 another_func() 的函数中使用它,如何调用代码 sn-p 1?
下面的sn-p代码和上面一样吗?
//code snippet 2
function cleanNum(number)
//sample code
【问题讨论】:
sn -p 1 中存在语法错误.. 你是这个意思吗?var creditCard = cleanNum : function(number) return number.replace(/[- ]/g,"");
是的。你说的对。我会编辑它
这将帮助您了解javascript命名空间javascriptweblog.wordpress.com/2010/12/07/…
【参考方案1】:
对我来说,代码实际上并没有编译这个错误:
Uncaught SyntaxError: Unexpected token :
我认为你的意图是
var cleanNum = function(number)
return number.replace(/[- ]/g,"");
这类似于另一种方式,称为函数声明。不同之处在于加载代码的时间。当声明像 function cleanNum() ... 这样的函数时,该代码在任何代码执行之前加载,而表达式(见上面的代码块)在执行期间加载。如果您在加载之前尝试调用它,则会引发错误。
编辑
刚刚看到对您的代码块所做的编辑。当你这样做时:
var creditCard =
cleanNum : function(number) return number.replace(/[- ]/g,"");
您将 cleanNum 存储在 creditCard 对象下,要调用它,您必须使用
creditCard.cleanNum(param)
这和原来的不一样,因为之前你可以直接访问它
cleanNum(param)
【讨论】:
对不起。我在 Screen Cast 上看到了代码。我按照@KishoreSahas 在 cmets 中指出的问题对其进行了编辑。【参考方案2】:我想知道下面代码中的 cleanNum 是什么意思。是函数名还是代表什么?
只是一个函数名
第一季度。我不明白 cleanNum 的含义。你能解释一下cleanNum()的意义吗?
cleanNum()
只是一个function
名称,位于namespacecreditCard
之下。
第二季度。如果我在另一个名为 another_func() 的函数中使用它,如何调用代码 sn-p 1?
您可以通过
creditCard.cleanNum(numbr)
调用该函数
下面的sn-p代码和上面一样吗?
不是的
要了解更多javascript中的命名空间:click here
【讨论】:
【参考方案3】:第一季度。我不明白 cleanNum 的含义。你能解释一下cleanNum()的意义吗?
cleanNum
是在对象元素中用匿名函数定义的函数名。该函数将通过删除其中的破折号(“-”)使number
变得干净。我猜这将是信用卡号码,所以它会输入类似于 1-2345-6789-01-2
的内容,然后只返回数字(没有破折号),在这种情况下将是 123456789012
。
第二季度。如果我在另一个名为 another_func() 的函数中使用它,如何调用代码 sn-p 1?
你可以调用它
creditCard.cleanNum(number);
希望对你有帮助,
【讨论】:
【参考方案4】:您可以通过两种方式定义 cleanNum 函数:
1)function cleanNum(number)
这样,cleanNum 在代码执行开始之前就被加载到内存中。你可能不需要这个。
2)cleanNum=function(number)
这样每次调用cleanNum都会加载到内存中。
您还可以使用以下方式访问 cleanNum 函数:
creditCard.cleanNum(number)
【讨论】:
【参考方案5】:第一件事: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
(或在设置时清除编号该属性)。但这超出了问题范围;)
【讨论】:
以上是关于var card= cleanNum: function().... 这个 cleanNum: 是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章
Mybatis框架中:Check syntax #{property|(expression), var1=value1, var2=value2, ...}