質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

2095閲覧

空のオブジェクトの中に空のオブジェクトを用意することは文法上出来ないのか?

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/04/26 07:02

編集2021/04/26 07:10

単純な質問なのですがAはエラーになりBはエラーになりません。この二つの違いは空のオブジェクトの中に空のオブジェクトがあるかどうかですが
Aは文法上出来ないのでしょうか?やいたい実装は提示コードの下のコードですがシェーダーで使う属性変数の値を取得してそれをオブジェクトとして描画関数に引数として渡したいのです。そのための空のオブジェクトの中で空のオブジェクトです。

エラー[ Uncaught SyntaxError: Invalid shorthand property initializer]

js

1var programInfo_A = { attribLocations = {},uniformLocations = {} }; //プログラム 2var programInfo_B = {}; //プログラム 3 4

js

1//シェーダープログラムオブジェクトを作成 2shaderProgram = initShaderProgram(gl, vsSource, fsSource);//シェーダープログラムを作成 3 4programInfo.shaderProgram = shaderProgram; 5programInfo.attribLocations.vertexPosition = gl.getAttribLocation(shaderProgram,'aVertexPosition'); 6programInfo.uniformLocations.projectionMatrix = gl.getUniformLocation(shaderProgram,'uProjectionMatrix'); 7programInfo.uniformLocations.modelViewMatrix = gl.getUniformLocation(shaderProgram,'uModelViewMatrix'); 8

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/04/26 07:04

attribLocations = {} ↓ attribLocations : {} と思いますが、出ているエラーとコードが合ってないのでは。 例ではなく問題が起きたコードをそのまま提示してください
int32_t

2021/04/26 07:06

programInfo_Aはどういう構成のオブジェクトを定義しようとしているのでしょうか? 日本語で説明してください。
m.ts10806

2021/04/26 07:12

頼むから基礎やってね。 ちゃんとアドバイス聞いてれば質問しなくても済む質問ばっかり 自分の都合のいいことしか聞けないなら他人を頼るな
hoshi-takanori

2021/04/26 07:15

中に (例え空でも) オブジェクトを持ったオブジェクトは空ではないですね…。
退会済みユーザー

退会済みユーザー

2021/04/26 07:20

なるほどわかりました。
guest

回答1

0

ベストアンサー

単純な質問なのですがAはエラーになりBはエラーになりません。この二つの違いは空のオブジェクトの中に空のオブジェクトがあるかどうかですが
Aは文法上出来ないのでしょうか?

できます。
文法が間違っているだけではないでしょうか?

js

1const programInfo_A = { attribLocations : {},uniformLocations : {} }; 2console.log(programInfo_A);

出力

{ attribLocations: {}, uniformLocations: {} }

投稿2021/04/26 07:10

nekoniki

総合スコア2411

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/04/26 07:12

質問ですが空のオブジェクトに存在しない要素を.testなどとすると勝手にそれが存在することになりそれ以降使えますがこの言語機能は有用なのでしょうか?
nekoniki

2021/04/26 07:14

programInfo_A.test = "なにか"; のような感じでしょうか。 有用かどうかは分かりかねますが、仕様です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問