什么是JavaScript对象和属性?

时间:2017-11-16 20:46:43

标签: javascript object properties

任何人都可以通过Javascript中的外行人解释对象和属性吗? Javascript MDN文档令我困惑。

我正在尝试解决有关对象和属性的Javascript教程中的问题问题如下,我对代码的尝试,我认为我已经遵循MDN,因为我可以掌握它。任何帮助将不胜感激!

问题:将property参数的值添加为object参数的键。 新属性的值应设置为null。 添加新属性后返回对象。

输入示例:

{}, 'hello'
{ x: 5 }, 'y'

输出示例:

{ hello: null }
{ x: 5, y: null }

注意:属性名称不是'属性'。名称是名为property(字符串)的参数的值。

我的代码: //注意:函数addProperty(object,property)已经在控制台中,我必须在其中编写解决方案。

function addProperty(object, property) {
  // code here
  let result = addProperty({x: 5}, 'y');
  obj[property] = null;
  return obj;
}

addProperty(x, 'y'); 

3 个答案:

答案 0 :(得分:1)

我认为你过分思考了。

首先是问题:

  

对象上添加属性参数的值作为   参数即可。新属性的应设置为null。返回   添加新属性后的对象。

强调添加

因此,属性将是KEY(key/value pair),而VALUE将为 object 的null,我们也将其作为参数传递。

在javascript对象上查询键/值对的一种方法是通过方括号[]。所以,如果你有一个键/值对:{foo:“bar”},你可以通过:object ['foo']得到“bar”。您也可以像这样创建新的键/值对,因此您的函数可以如下所示:

function addProperty(object, property) {
    object[property] = null;
    return object;
}

var obj = {};

obj = addProperty(obj, "hello");

console.log(obj);
console.log(addProperty({x: 5}, 'y'));

我们的函数正在做的是将对象传递给它(作为参数),使用我们的属性参数创建一个新的KEY,并将其VALUE设置为null,并简单地返回该对象。

*旁注 -

要小心,你发布的代码将创建一个无限的递归循环,因为你一直在调用相同的函数而无法突破它。

答案 1 :(得分:1)

这个特例很简单:

var one={};
var two={x:5};
function addProperty(object property){
  obj[property]=null;
  return obj;
}

addProperty(one, 'hello'); 
addProperty(two, 'y');

javascript中的对象非常灵活,即使从一开始就设置了属性,也可以添加或删除它们的属性。

如果你采取:

var x={};

x 将是一个没有任何内容的对象,但如果不是你写的:

var x={
  inner:'b'
};

x 将是一个名为内部的属性的对象,其值为' b',现在,如果我们想访问该属性,我们可以做这样的事情:

var valueOfInner=x.inner;

var valueOfInner=x['inner'];

如果我们想要更改该属性的值,则相同:

x.inner=8;

x['inner']=8;

现在,您注意到当我们使用x。[' inner']时,我们可以很好地使用:

var propertyName='inner';
x[propertyName]=8;

因此,您可以访问和修改对象的属性,而无需确切知道您正在操纵哪个属性。

最后,如果您(意愿或偶然)尝试设置不存在的属性的值,则会自动创建该属性,例如:

x['blah']=456;

即使最初没有定义属性,也会创建属性 blah

编辑:是的,您可以在以后定义对象并定义其属性:

var x={};
//more code or something
x['y']=777;//now x has a y property with the value 777

答案 2 :(得分:1)

Layman的解释:

对象是属性的集合。您可以为对象指定名称以保持组织有序。例如,让我们创建一个人物对象。

import java.util.Scanner; public class Calculator { public static void main(String[] args) { System.out.println("This is a calculator:"); calc(); } public static void calc(){ System.out.println("Press *,/,+,- to perform op on following ints:"); Scanner sc = new Scanner(System.in); String opString = sc.nextLine(); if(opString.equalsIgnoreCase("quit")){ System.out.println("Calculator quit!"); sc.close(); return; } switch (opString) { case "*": multiplication(); break; case "/": division(); break; case "+": addition(); break; case "-": subtraction(); } } public static int multiplication(){ Scanner sc = new Scanner(System.in); int op1 = 1, op2; while (sc.hasNextInt()){ op2 = sc.nextInt(); op1 *= op2; System.out.println("= " + op1); } sc.close(); return op1; } public static int division(){ return 0; } public static int addition(){ Scanner sc = new Scanner(System.in); int op1 = 0, op2; while (sc.hasNextInt()){ op2 = sc.nextInt(); op1 += op2; System.out.println("= " + op1); } sc.close(); return op1; } public static int subtraction(){ return 0; }

该对象目前没有属性。为了进一步描述这个人,我们可以为对象添加属性。

var person = {};

现在这个对象有一些属性可以帮助描述它。写同一件事的另一种方式:

person.Name = 'Zim'; person.Age = 29; person.Gender = 'Male'; person.Weight = 80;

如果我们必须创建一个显示人员列表的程序,那么将所有信息存储在对象中将有助于保持组织有序。

对象属性有时也称为键。

向对象添加属性:

您可以使用括号向对象添加属性,就像在var person = { Name: 'Zim', Age: 29, Gender: 'Male', Weight: 80 };函数中一样。如果您只是需要它来添加属性,请将该属性设置为null并返回结果,它将如下所示:

addProperty

这将让我们通过调用

从上面创建我们对象的特性
function addProperty(object, property) {
  // code here
  object[property] = null;
  return object;
}