JavaScript 在函数中声明键值对

javascript declaring key value pair in a function

本文关键字:声明 键值对 函数 JavaScript      更新时间:2023-09-26

假设我有一个对象,其中有一个函数,并且在函数内部声明了一些键值。如果每个函数都是JavaScript中的函数对象,那么在其中声明键值对是完全合法的。

var a ={
  a: "shiv",
  b: "shiv1",
  c: function(){
    L:"shiv1",
    console.log(L);
  }
}

如何访问这些密钥。 在什么情况下我需要向函数添加键值对。 这表示什么。例如,在此函数中,如何访问L键。

编辑 1:控制台.log行将通过错误。假设我们只有这段代码

var a ={
  a: "shiv",
  b: "shiv1",
  c: function(){
    L:"shiv1",
  }
}

在函数中声明密钥意味着什么。 如果我需要访问 L 键,我该怎么做

每个函数也是一个对象,这意味着您确实可以为它设置属性。事实上,每个函数都有length属性,它表示该函数接受的形式参数的数量。

但是,用于设置函数属性的语法不是应该如何操作的。即使您使用的是完全有效的语法,这也是标签语句,而不是属性定义语法。如果你想在你的情况下为函数对象设置一个属性,你可以这样做:

function c() {
  console.log(c.L) // => "I'm a property of c function"
}
c.L = "I'm a property of c function";
var a = {
  a: "shiv",
  b: "shiv1",
  c: c
}

什么时候有用?就像我说的,它的用途有限,比如length函数的属性,但在许多情况下,你不需要直接在函数级别设置属性。

这必须是抛出错误:

L:"shiv1",
console.log(l);

您可能希望:

  c: function(){
    return {L:"shiv1"};
  }

然后按以下方式访问它:

a.c().L;

完整示例如下:

var a ={
  a: "shiv",
  b: "shiv1",
  c: function(){
    return {L:"shiv1"}    
  }
}
alert(a.c().L);

不能像在函数中那样声明键。这不起作用:

c: function(){
    L:"shiv1", //Declaration don't work in this context
    console.log(l); //Don't work
}

试试这个(请删除"函数"语句(:

c: {
 L:"shiv1"
}

此外,您可以这样做:

c: function() {
    var test = "shiv1";
    return test;
}

如果要使用参数:

c: function(a, b) {
    var test = a + " shiv1 " + b;
    return test;
}

或:

c: function(a, b) {
    var total = a + b;
    return total;
}