究竟什么是对象和属性,什么都可以成为它们

时间:2017-08-31 13:37:43

标签: javascript json object properties

如何判断一段代码何时是一个对象以及它的属性。

究竟什么是对象和属性以及它们如何相互关联?

从这里是让我感到困惑,有点无足轻重的

onine course original words from Codecademy

...
"scripts": {
  "test": "echo \"Error: no test specified\" && exit 1"
}, ...

这里说:"scripts" 属性包含对象,其中一个属性称为"test"

  

"scripts"属性包含一个名为" test" 的属性的对象。

     

"scripts"属性

     

"test"对象,只有一个属性

     

"echo \"Error: no test specified\" && exit 1"属性

  

"scripts"属性包含一个对象,一个**属性**称为" test"

     

"scripts"属性

     

{...}对象

     

"test"属性

...
"scripts": {
  "test": "echo \"Error: no test specified\" && exit 1",
  "build": "babel src -d lib"
}

这里说:在上面的"scripts" 对象中,我们添加了一个名为"build"属性属性的值"babel src -d lib"

  

"scripts"对象

     

"build"属性

     

"babel src -d lib"属性

的值

对我而言,第二个代码解释更有意义,但哪一个是真的..

3 个答案:

答案 0 :(得分:0)

要理解这一点,您需要完整的数据结构,采用以下结构:

{
    "child" : {
        "childs_property": "childs_property_value"
    }
}
  1. child是整个JSON结构中指向对象的属性。
  2. child_propertychild对象中的属性。
  3. 因此,child是一个属性(整体结构),如果你更深入,它也是一个对象。

    <强>的jsfiddle

    运行this小提琴并检查控制台,看看输出:

    object
    object
    string
    

答案 1 :(得分:0)

对我来说,第一个解释更贴近事实。我们先来看看下面的JSON代码片段:

"scripts": {
  "test": "echo \"Error: no test specified\" && exit 1",
  "build": "babel src -d lib"
}

这是您提供的代码段。但是,它不是一个完整的JSON块,因为它需要围绕它:

{
    "scripts": {
      "test": "echo \"Error: no test specified\" && exit 1",
      "build": "babel src -d lib"
    }
}

现在整个事情是一个JSON对象。该对象有一个名为&#34; scripts&#34;的属性。此属性的值是包含两个属性的另一个对象&#34; test&#34;和&#34;构建&#34;使用各自的值&#34; echo \&#34;错误:未指定测试\&#34; &安培;&安培; 1号出口&#34;和&#34; babel src -d lib&#34;。

答案 2 :(得分:0)

{
    foo: {
        bar: 'some string'
    }
}

如果你看一下上面的代码:

整个代码块是&#34;对象&#34;
foo: { ... }是一个属性,其值{ ... }是一个对象 在那里,
bar: 'some string'是一个属性,其值{ ... } 不是 一个对象。它是一个字符串。

总结一下,

  • &#34; object&#34;:&#34; object&#34;的值类型,所以{},有或没有属性。
  • &#34; property&#34;:属性上的键/值对。