我想知道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
}

最佳答案

首先,var x = {}定义了一个新对象,在{}中声明的每个变量都成为该对象的字段。

下面将创建一个具有字段号的对象(由变量creditCard引用)

var creditCard = {
  number: '3432-2342-34243'
};


关于Q1,cleanNum的意义在于它是对象creditCard的成员。仅包含function而不是包含int / string / date等。

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来代替参数编号(或在设置该属性时清除数字) 。但这不是问题的范围;)

09-10 19:09