var card= cleanNum: function(){....} 这个cleanNum: 是什么意思?

var card= cleanNum: function(){....} what does this cleanNum: mean?

我想知道下面代码中的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
}

对我来说,代码实际上并没有编译这个错误:

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)

我想知道下面代码中的cleanNum是什么意思。它是函数名称还是代表其他东西?

it is just a function name

Q1。我不明白 cleanNum 的含义。能否解释一下cleanNum()的意义。

cleanNum() just a function name which is under the namespace creditCard.

Q2。如果我在另一个名为 another_func() 的函数中使用它,我该如何调用代码片段 1?

you can call the function by creditCard.cleanNum(numbr)

下面的代码片段和上面的一样吗?

No it is not

要了解有关 javascript 中 命名空间的更多信息:click here

Q1. I do not get the meaning of cleanNum. Can you please explain what is the significance of cleanNum().

cleanNum是对象元素中用匿名函数定义的函数名。该函数将通过删除其中的破折号(“-”)使 number 变得干净。我想这将是信用卡号码,所以它会输入类似于 1-2345-6789-01-2 然后 return 只有数字(没有破折号),在这种情况下将是 123456789012.

Q2. If I am using it in another function called another_func(), how do I call the code snippet 1?

你可以用

调用它
creditCard.cleanNum(number);

希望对您有所帮助,

您可以通过两种方式定义 cleanNum 函数:

1)function cleanNum(number) { }

这样,cleanNum 在代码执行开始之前加载到内存中。你可能不需要这个。

2)cleanNum=function(number) { }

这样每次调用cleanNum都会加载到内存中

您还可以使用以下方法访问 cleanNum 函数:

creditCard.cleanNum(number)

第一件事: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本身(或在设置 属性 时清除数字)。但这不在问题范围内 ;)