2017-11-16 8 views
0

誰でもオブジェクトとプロパティをJavascriptで私に説明することはできますか? JavascriptのMDNのドキュメントは私を混乱させています。JavaScriptオブジェクトとプロパティとは何ですか?

オブジェクトやプロパティについてのJavascriptチュートリアルの問題を解決しようとしています。問題は以下の通りです。コードを試してみると、私はMDNに追いついていると思います。どんな助けもありがとう!

質問:プロパティ引数の値をオブジェクト引数のキーとして追加します。 新しいプロパティの値は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'); 
+0

あなたの質問は何ですか? –

+0

下記の回答のいずれかがあなたのニーズを満たしている場合は、それらに+1の報酬を与えることを忘れないでください。これは、人々が質問に答えるのを助けることに興味を保ちます – Sablefoste

答えて

1

素人の説明:

オブジェクトは、プロパティのコレクションです。物事を整理しておくために、オブジェクトに名前を付けることができます。たとえば、personオブジェクトを作成できます。

var person = {};

オブジェクトは、今のプロパティがありません。その人物についてさらに説明するために、オブジェクトにプロパティを追加することができます。

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

このオブジェクトには、それを説明するのに役立ついくつかのプロパティがあります。同じことを書くための別の方法:我々は人々のリストを表示するプログラムを作成する必要がありました場合は

var person = { Name: 'Zim', Age: 29, Gender: 'Male', Weight: 80 };

は、オブジェクト内部の私たちのすべての情報を格納して整理物事を保つのを助けるでしょう。

オブジェクトプロパティは、キーと呼ばれることもあります。


オブジェクトにプロパティを追加:

あなたはあなたのaddProperty機能に持っていただけのよう、ブラケットを使用して、オブジェクトにプロパティを追加することができます。

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

これは私たちが私たちのオブジェクトにproperiesを作成できます上から

を呼び出して:あなただけのプロパティを追加することが必要な場合、それは次のようになりますnullにそのプロパティを設定し、結果を返します
addProperty(person, 'Occupation'); 
addProperty(person, 'Income'); 
addProperty(person, 'Height'); 
1

あなたはそれを熟考していると思います。

最初の質問:

オブジェクト 引数キーとしてproperty引数の値を追加します。新しいプロパティのはnullに設定する必要があります。新しいプロパティを追加した後に オブジェクトを返します。

強調だから

を追加し、プロパティが(key/value pairの)キーとなり、その値は、我々はまた、引数として渡しているオブジェクト、ヌルであろう。

javascriptオブジェクトのキーと値のペアを調べる1つの方法は、大括弧[]を使用することです。ですから、キーと値のペア{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')); 

何私達の機能を持つ新しいキーを作成し、(引数として)、それに渡されたオブジェクトを取ってやっている私たちのVALUEをnullに設定してオブジェクトを返すだけです。

*サイドノート -

は注意してください、あなたがそれを打破する方法はありませんと同じ関数を呼び出す保つよう、あなたが投稿したコードは、無限再帰ループを作成します。

1

この特定の例では単純です:JavaScriptで

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

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

オブジェクトが本当に柔軟性があり、その性質は非常に最初から設定された場合でも、追加または削除することができます。

あなたが取る場合:

var x={}; 

Xはそれで何も対象になりますが、その代わりにあなたが書いた場合:X

var x={ 
    inner:'b' 
}; 

するとオブジェクトになりますという名前のプロパティの値は '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 
+0

オブジェクトを作成すると、xが記述子になりますか?私はオブジェクトを作成しましたが、オブジェクトに与えたいプロパティは何か分かりません。それらを空白のままにして、後で記述子と値を追加できますか? – babycoder

+0

はい、私の編集を確認してください –

関連する問題