X



+ JavaScript の質問用スレッド vol.124 +

■ このスレッドは過去ログ倉庫に格納されています
2021/11/10(水) 15:24:24.80ID:jxD2VXPG0
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-6のテンプレを読んだ上で質問してください。次スレは>>950>>2のテンプレ案(本スレで改善案があれば考慮)を元に立ててください

■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
  (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
  具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
  わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
  ※必ず「問題の事象が再現されること」を確認してください。
   必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。

※前スレ
+ JavaScript の質問用スレッド vol.123 +
https://mevius.5ch.net/test/read.cgi/tech/1491143438/
VIPQ2_EXTDAT: checked:vvvvvv:1000:512:: EXT was configured
2022/02/15(火) 16:55:47.25ID:6QhYGEARr
arr = null
もしくは
arr = []
じゃダメなの?
2022/02/15(火) 20:35:06.19ID:v0u4j5eD0
>>465
いいと思うが、そう思ったなら本人に伝えればいいのに

あと、teratailスレのは誤投稿か?
https://mevius.5ch.net/test/read.cgi/tech/1630107050/304
2022/02/15(火) 20:41:42.47ID:YCvdbcjXM
自分は arr.length = 0 を使う

>>466
arr が let ならそれでもいいけど、const の場合は再代入出来ない
2022/02/15(火) 21:08:32.51ID:6QhYGEARr
>>468
constなのに長さ0にしちゃっていいの?
2022/02/15(火) 21:10:50.44ID:v0u4j5eD0
>>469
constが禁止するのは再代入
プロパティ変更は禁止しない
2022/02/15(火) 22:48:45.41ID:6QhYGEARr
>>470
そういう意味ではなく
constで定義している配列の長さを0にするってことは変更不可として定義してる配列なのになぜか0になってるというバグを生みやすいんじゃないか?
2022/02/15(火) 23:01:49.17ID:z5poVj2c0
>>471
「変更不可」と「再代入禁止」の区別を付けられるようになろう
君のその認識こそ、不具合を生み出す原因になるよ
473デフォルトの名無しさん (ワッチョイ ab5f-K+Vi [106.73.17.192])
垢版 |
2022/02/15(火) 23:03:26.68ID:JA2Mlap+0
別に変更不可って意味でconst使わなくないか?
2022/02/15(火) 23:07:54.82ID:6QhYGEARr
やっぱjavascriptは欠陥言語だよな
定数とオブジェクトでconstの使い方変わるし
2022/02/15(火) 23:20:36.81ID:NudRi/Oa0
ワロスw
2022/02/15(火) 23:24:11.41ID:oyYnjwf7d
2022/02/15(火) 23:54:38.03ID:DOsFVpUk0
2022/02/15(火) 23:54:58.40ID:DOsFVpUk0
いや

大爆
2022/02/16(水) 00:38:29.63ID:dZoJOzXw0
欠陥言語か?cのconstと同じでは?
2022/02/16(水) 12:21:54.58ID:Nuw/c3FA0
Ruby でも、入れ物と各要素は別。
shallow copy と同じ。動的言語は全てそう。
deep copy, deep freeze などは、誰かが作る必要がある

入れ物をフリーズしても、各要素は変更できる

ary = %w(a b).freeze

ary[ 0 ].upcase!
p ary #=> ["A", "b"]

だから、入れ物と各要素の両方を、フリーズする必要がある

ary_2 = %w(x y).map( &:freeze ).freeze
ary_2[ 0 ].upcase! #=> エラー。変更できない!
2022/02/16(水) 22:54:05.43ID:CjOKbN9ya
スレ違いも守れない身勝手なクズ
482デフォルトの名無しさん (ワッチョイ cf10-SFaO [180.12.82.129])
垢版 |
2022/02/17(木) 22:37:18.01ID:TmsR/NWJ0
<input type="button" value="aaaaaa" id="test1">
<br>
<input type="button" value="bbbbbb" id="test2">

<スクリプト>

var id_list = ["test1","test2"];

for(let n=1;n<=id_list.length;n++){
var elm = document.getElementById(id_list[n-1]);

elm.addEventListener(
"click",
function(e){
alert(elm.value);
}
);
}
</スクリプト>

aaaaaaボタンをクリックしてもbbbbbbと表示されてしまいます
どこが間違っているんですか?
2022/02/17(木) 23:03:32.28ID:Np/YPCaB0
>>482
スコープまわりの認識とか?
var を使わずに const, let 使えば意図した通りに動くはず
2022/02/17(木) 23:21:36.38ID:eqAwClgCa
alert (elm.value)をalert(e.currentTarget.value)に変えたればおけ
2022/02/17(木) 23:28:41.09ID:7BD8Ewk+0
alert(this.value)
または
const elm = document.getElementById(id_list[n-1])
2022/02/17(木) 23:31:46.94ID:U/Ab4M74p
これから新規でスクリプト書くなら、特別な理由がない限りvarは使わずletかconstだけ使うほうが、変なミス起こらなくていいと思う
2022/02/18(金) 10:44:02.23ID:tiifqQ9V0
初心者は、jQuery を使えばよい

分かりにくい、this の意味も変えてある
2022/02/18(金) 11:35:27.02ID:tiifqQ9V0
jQuery で、ボタンの外側・親にイベントを付けて、親で、子のイベントをキャッチできる

<div id="btn-wrap">
<button class="BtnA BtnAll" value="1">A-1</button>
<button class="BtnA BtnAll" value="2">A-2</button>
<button class="BtnB BtnAll" value="3">B-3</button>
</div>

$( function ( ) {
// 外側・親にイベントを付けて、親で、子のイベントをキャッチする
$( '#btn-wrap' ).on( 'click', function ( event ) {
const value = $( event.target ).prop( 'value' )
console.log( value )
alert( value )
} );
} );

または、共通のclass を付けて、そのクラスだけのイベントをキャッチできる

// .BtnA のみ
$( '.BtnA' ).on( 'click', function ( event ) {
const value = $( this ).prop( 'value' )
console.log( value )
alert( value )
} );
2022/02/18(金) 12:16:47.94ID:tiifqQ9V0
>>488
に追加

セレクターをカンマで区切れば、A またはB でも出来る

// .BtnA or .BtnB のみ
$( '.BtnA, .BtnB' ).on( 'click', function ( event ) {
const value = $( this ).prop( 'value' )
console.log( value )
alert( value )
} );
490デフォルトの名無しさん (ワッチョイ cf10-K2F7 [180.12.82.129])
垢版 |
2022/02/18(金) 12:23:50.32ID:aHWUA2kK0
>>483-485
やってみますありがとー
2022/02/18(金) 12:38:42.82ID:YjRRevVzM
イベントのバブリングを学ぶにはいい機会(丁度よい題材)だとは思うけど、「初心者に向けて」というエクスキューズでもって今時jQueryを勧める態度には悪意に近いモノを感じる
2022/02/18(金) 21:37:34.77ID:rjrdvPAWd
今後廃れていくだけだもんな
新たに学習する必要はないわな
2022/02/19(土) 09:29:33.08ID:SYl7hXba0
こんにちはこのたびはお世話になります
Javaスクリプトの質問ですが
いろいろ煮詰まっておりさしあたり
変数のスコープとオブジェクトのことがよくわからないでして
変数は関数内のみのローカルありますよね
でオブジェクトも
var obj=new obj()
といったインスタンツなら変数とおなじでローカルだったりグローバルだったりするんですかな
まずは以上よろしくお願いします
2022/02/19(土) 09:52:37.76ID:ApZEftHir
もうvarは使うな以上
2022/02/19(土) 12:07:18.29ID:SYl7hXba0
バーよりレッツを使うんですね承知しました。
ブラウザ画面内に表示されたDOMオブジェクトは常にグローバルなんですかね
何もかもがわからん
2022/02/19(土) 13:34:02.57ID:XlinVUCj0
window.document.body, window.document.head など、
windowオブジェクトはグローバル

windowが無くても、document.head でも同じ

window.document.head == document.head
//=> true

例えば、Pjax で、ページを作っている場合、
ページ遷移したように見えても、window に追加したオブジェクトは初期化されない。
そのまま残っている

ページの一部分しか変更されていないから。
ページをreload していないから
2022/02/19(土) 16:01:34.02ID:c/9+L37GM
Pjax is なに
498デフォルトの名無しさん (ワッチョイ a333-mA98 [112.71.200.123])
垢版 |
2022/02/19(土) 18:28:21.70ID:fGIkG9WE0
>>491
むしろ悪意そのものでしょ
2022/02/19(土) 18:38:03.12ID:SYl7hXba0
参考書に、Javaスクリプトにはクラスの概念はない、て書いてあるんですが
もしかして情報が古い?
2022/02/19(土) 18:39:00.10ID:9/CFXaUW0
はい
2022/02/19(土) 18:43:12.48ID:QjUSXh+yM
その本で勉強するのやめたら
varを使ってるのもそのせいだろうし
2022/02/19(土) 19:02:00.92ID:LKw+j5240
>>499
「クラスの概念がない」は正しい
JavaScriptはプロトタイプベースでclass文は糖衣構文だからな

そういう意味で書かれているのなら正しいといえるが、書籍を持ってない人が文脈を読みとれるはずもない
書籍の正しさを保証するのはその書籍を持っている人だけ
2022/02/19(土) 19:05:31.85ID:s68IJWjka
まあvar使ってる時点でES15以前だから読む価値なしですね

時間の無駄なんでその本を投げ捨てろ
2022/02/19(土) 19:06:29.96ID:LKw+j5240
>>499
あと、正しさを気にするなら、カナ交じり用語を使うのを止めた方がいい

・Javaスクリプト
・バー
・レッツ
2022/02/19(土) 21:14:26.70ID:WPu6vt5B0
マジレス…
2022/02/19(土) 22:06:51.12ID:SYl7hXba0
こんばんはいつもお世話なります
今日でかなり学習は進みましたありがとうございます
さっそく質問ですが
クロッパーJSという便利ライブラリを見つけて解析しております
ところが
fileReaderでダイヤログを出してjpg画像なりを読んでまずは画面にプレビューしますが、
あっ間違えたのテイで再度fileReaderして別の画像を読み込むのですが
プレビュー画面が前のまま変わらないのです
以上よろしくお願いします
2022/02/19(土) 22:16:58.88ID:LKw+j5240
>>506
クロームdevtoolでソースcodeを解析してみればいいんじゃないかな
ネタ品質が低くてすまん
2022/02/19(土) 23:27:47.87ID:SYl7hXba0
クロッパーJSの公式デモページ(エマワトソンの写真のやつ)でImport Image with Blob URLsというボタンは
何度でも写真を読み直しできるんですよ
インスタンスをデストロイがカギとは思うのですが
2022/02/19(土) 23:34:29.04ID:LKw+j5240
>>508
デモページのソースをディフってみたら?
2022/02/20(日) 01:15:27.52ID:vRC3RkLD0
クロッパーのことですけんど
なかなか敷居が高いですわ
インタネッツでもたくさんの人が2回目の読み込みをどうするか質問してますね
2022/02/20(日) 03:05:26.93ID:vRC3RkLD0
ふう、なんとかやれましたよ
大儀であつた
2022/02/20(日) 16:34:24.33ID:vRC3RkLD0
こんにちは今日も格闘しております
グーグルマップのリーフレットプラグインで、写真を地図に貼り付けています
複数貼った時の処理でまた壁につきあたりました
貼り付け関数で作るインスタンスが「imgovlay」なんですがその名前なら例えばimgovlay.options.cornersってやれば四つ角の座標がとれるですけんど
3枚はったあとからでは1枚目の座標が調べられんとです
これはどんな工夫したらよいのやら
以上よろしくお願いします
2022/02/20(日) 17:20:03.63ID:xfffAjua0
日記ならそろそろ個人ブログでも作ってやったら
前にレスくれてる人は無視、相変わらず中途半端なカタカナ表記で聞きたいこともわかりにくいし書いてるコードも貼らない
一応エスパーしとくと、配列でインスタンス全部持っておくだけでは?
2022/02/20(日) 17:28:08.35ID:vRC3RkLD0
ジェーンスタイルというアプリでこのスッドレを見ておるますが、タグのあるコードのコピペはできないんですよ
2022/02/20(日) 17:31:05.62ID:7vowCzxS0
まず最初に>1-2を丁寧に見るといいよ、というか見て
http://ideone.com/
http://jsfiddle.net/
2022/02/20(日) 17:50:37.16ID:vRC3RkLD0
はい承知しました
大儀であった
2022/02/20(日) 18:25:51.02ID:hgnRPi350
ID:vRC3RkLD0はネタ質問と思ってる
全く面白くないが
2022/02/21(月) 02:08:54.33ID:44J1KF7y0
Chrome拡張機能のjsファイルを修正しようとしているんだけど
(バグが出たのに作者放置で逃亡w)
JSファルダの中にいくつかjsファイルがあるけど、どれが最初に読み込まれるのですか?
また、グローバル変数はファイルを超えて使えますか?
2022/02/21(月) 04:36:00.42ID:YvtULrNjM
>>518
まずは複数の実行コンテキストが存在することを把握するといい
chromiumのmanifest V2拡張機能はこの年末にサポート終了が予定されているので、その拡張機能がV2の場合はV3に作り直すことをオススメする
2022/02/23(水) 08:42:30.40ID:EjF360bu0
質問です。.cgiのページにcanvasの
https://www.google.com/amp/s/torisky.com/javascript%25EF%25BC%259Acanvas%25E3%2581%25AB%25E9%259B%25AA%25E3%2581%25AE%25E7%25B5%2590%25E6%2599%25B6%25E3%2582%2592%25E9%2599%258D%25E3%2582%2589%25E3%2581%259B%25E3%2582%258B/%3famp=1を設定するにはどこのページにコード貼り付ければいいのでしょうか?全部.cgiの中で大丈夫ですか?
2022/02/23(水) 10:35:21.54ID:EjF360bu0
HTML部分

<!DOCTYPE html>
<html>
<head>
って書いてるから無理なんかな……index.htmlじゃなくて.cgi直のURLに設定したいんだけど……
2022/02/23(水) 11:28:37.94ID:hXi3IxJ40
>>521
こんにちは
cgiてのはperlのコトですかね
perlやPHPはHTMLをまるっと吐き出せるんですよ
だからjavascriptの仕掛けのあるHTMLをまず作ってみて、その内容をまるごとcgiでprint文などで出力します
2022/02/25(金) 20:59:11.76ID:zW9WpBq20
てst
2022/02/25(金) 20:59:52.69ID:zW9WpBq20
C#からJavaScriptをコールしたいのだが、このJavaScriptは.jsファイルに入れるのではなく、
htmlファイル内に書かないといけないのかな?
525デフォルトの名無しさん (ワッチョイ 1710-rCyD [180.12.82.129])
垢版 |
2022/03/06(日) 20:50:59.24ID:Ii2qDZic0
setIntervalでtimer1が起動中のときはtimer2を起動させないようにするにはどうやればいいんですか?
2022/03/06(日) 20:59:50.64ID:EBMcer04r
>>525
setIntervalのラップ関数を作って排他制御する
527デフォルトの名無しさん (ワッチョイ 1710-rCyD [180.12.82.129])
垢版 |
2022/03/06(日) 21:36:36.90ID:Ii2qDZic0
>>526
なるほどー
それとsetIntervalも戻り値は0になることはないのですか?
2022/03/06(日) 22:53:26.23ID:SX3V4D250
timer の状態を調べる、属性とかは無いの?
2022/03/08(火) 21:51:27.12ID:iL0h68YD0
>>528
返り値はただのNumber値
プロパティは埋め込めない
2022/03/08(火) 22:09:04.89ID:iL0h68YD0
>>527
戻り値は正の整数
2022/03/09(水) 08:20:41.91ID:U0qNtUpH0
数日前からjavascriptやらされてるんだけど質問
ajax関係の処理が例えばJqueryだと$.ajaxとかで終わった時の処理とか
エラーだったときの処理とかで分かれてるじゃない?
こういうAPIへのリクエストは全部まとめたいからsuccessにreturnするfunctionにしたら
使う側では瞬間帰ってきてundefinedになってしまう・・・
asyncなんだから当たり前だと言われたらそれまでなんだけど
そして毎回$.ajaxをそこら中で呼び出すことになる
これってそういう言語だからあきらめろしか無い感じ?
もちろんasyncをfalseにしろという話になりそうだけどブラウザがメインスレッドでやらんほうがいいとか警告出してくるし
2022/03/09(水) 08:38:01.00ID:6ktbAzhaM
よく分からんけどコードが間違ってるだけな気がする
2022/03/09(水) 09:30:24.96ID:Cs4PttVsr
>>531
awaitを使えば返り値でとれる
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/await

別スレで似た質問があったが、同一人物ではないよな?
https://mevius.5ch.net/test/read.cgi/hp/1478002550/499
質問者の応対が酷かった
2022/03/09(水) 10:14:14.84ID:U0qNtUpH0
>>532
>>533
ごめん色々試してみて自己解決したかも
$ajaxをfunctionに包んでたけど単にreturnするのがsuccessに与えてる無名関数へのreturnになってるからな気がした
その質問者はしらんけどそんなすれあるのねスレチならあっちいくわ

function getdata() {
$.ajax({
type: 'post',
url: 'aaaa',
contentType: 'application/json',
dataType: 'json',
success: function(jsondata) {
return jsondata;
});
}
呼び出し元
var a = getdata();
これでaがnullなのはasyncとかだと思ってたけどfunctionの返し先が無名関数だからだと思う
こういう場合javascript的にはどうするのが定石なの?
getdataの引数に結果を入れる変数渡すの?
2022/03/09(水) 10:18:12.60ID:Cs4PttVsr
>>534
PromiseかDeferredを使う
2022/03/09(水) 10:24:10.95ID:U0qNtUpH0
>>535
やばいこれおもしろいね
また世界が広がったわありがとう!
javascript始めてみて非同期処理の世界で頭おかしくなりそう
threadやforkとは微妙に違うおもしろさがある
2022/03/09(水) 10:59:23.57ID:de7whWW50
今時fetch使おうよ
2022/03/09(水) 11:12:57.49ID:HyI7NswaM
ブラウザ資源を独占できない以上非同期なのは仕方がない
隅っこに入れたWEB広告が通信するから描画スレッド止めますなんて言い始めたらぶん殴るわ
2022/03/09(水) 11:18:48.71ID:EGYBINjxM
>>531
強制されてるなら別だけど、とりあえずjQueryはヤメた方がいい
2022/03/09(水) 18:13:15.28ID:U0qNtUpH0
>>539
素?のJavascriptの方が良いって事かな?
ブラウザー対応考えたら楽だと聞いたけど動作対象がモダン環境なら気にしなくても良いとか?
2022/03/09(水) 20:06:52.37ID:2mwlDhCB0
>>540
caniuseやMDNで互換性を調べよう
https://caniuse.com/fetch
https://developer.mozilla.org/ja/docs/Web/API/Fetch_API#%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%83%BC%E3%81%AE%E4%BA%92%E6%8F%9B%E6%80%A7
2022/03/09(水) 20:17:36.42ID:BHHQkJq20
IE6ぐらいはサポートしとけ
長期デフォルトブラウザの実績は覆せない
2022/03/09(水) 20:24:49.60ID:2mwlDhCB0
>>542
MSのサポート期限を調べよう
https://www.google.com/search?q=ie6+%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E7%B5%82%E4%BA%86
2022/03/09(水) 20:30:03.00ID:bXFYtOtEM
>>540
IE対応するかしないかでほぼ決まる
お仕事ならお客さん次第
2022/03/10(木) 04:35:08.01ID:mUiYAuMC0
>>540
そうなんだありがとう
caniuseで見たら一番下の緑4個の行だけがターゲットだからfetchで良いんかな
Javascript=JQueryってのが当たり前になってるから意識変えれそうで良かった
2022/03/10(木) 16:41:12.37ID:QC1L9XJq0
>>545
対応ブラウザの問題がないならfetchで良いと思う
未対応ならPolyfillの選択肢もある
2022/03/11(金) 21:03:13.79ID:XGwo6uIj0
JavaScriptに「型」を 〜Microsoftが新構文を提案へ
https://www.google.com/amp/s/forest.watch.impress.co.jp/docs/news/1394/209/amp.index.html

これは気になる
仕様化されるのかね…
2022/03/12(土) 12:10:31.15ID:Nwo5BHml0
VScodeを使っていますが
この画面のカスタマイズはできますか
具体的には、ソース全体の縦長のビューがあってそのうち今見ているところが少し明るく表示されてますよね?その色が分かりにくい!
つかんでドラッグしたくても見つけにくい!
もっとハッキリした色にできますか
2022/03/12(土) 12:37:17.47ID:ilfolIlBM
>>548
Visual Studio Code / VSCode Part11
https://mevius.5ch.net/test/read.cgi/tech/1632311131/
550デフォルトの名無しさん (ワッチョイ bd10-pPbi [180.12.82.129])
垢版 |
2022/03/12(土) 18:02:33.03ID:gZ07u/du0
<html>
<head>
<meta charset="UTF-8">
<title>てすと</title>
</head>
<body>

<スクリプト>
for(let n=1;n<=300;n++){
let str = "<p>" + n + "</p>";
document.write(str);
}
alert(document.body.clientHeight);
alert(window.innerHeight);
</スクリプト>

</body>
</html>
ページ全体の高さを求めたいけどdocument.body.clientHeightで
695と表示されウィンドウの高さと同じになってしまいます。
どうすればちゃんとページの高さが求まりますか?
2022/03/12(土) 21:32:42.84ID:9cczQYeA0
web 系の質問は、web制作管理板の方のスレで聞いてください!

この板のスレは以前、荒らしが出た時に、緊急避難用に立てたもので、
本来はweb制作管理板の方です
2022/03/12(土) 21:36:30.85ID:5XddXhdb0
>>550
document.body.scrollHeight
document.documentElement.clientHeight
2022/03/12(土) 22:58:01.42ID:iDbN5UB10
>>551はただのコピペなので気にしないように
Web制作板の現状は>>213,253
2022/03/12(土) 23:28:29.22ID:9cczQYeA0
ここはプログラム板

HTML, DOM, CSS/SASS や、ブラウザ・サイトのページの知識などは、
web制作管理板の方がよい。ウェブ制作

それ以上のフレームワークなどは、WEBプログラミング板。ウェブ開発

YouTube で有名な、雑食系エンジニア・KENTA の本でも、
ウェブ制作はフロントエンド・コーダー、
ウェブ開発はバックエンド・SE みたいに、異なる分野となっている
555デフォルトの名無しさん (ワッチョイ bd10-pPbi [180.12.82.129])
垢版 |
2022/03/13(日) 00:51:37.82ID:zkh0XZKF0
>>552
ありがとう
<!DOCTYPE html>をつけたらdocument.body.clientHeightで取得できるようになりました。
556デフォルトの名無しさん (ワッチョイ 9d01-m3T3 [126.126.240.1])
垢版 |
2022/03/13(日) 15:40:27.22ID:jxSWNPd90
オブジェクトの中で別のプロパティを参照するのはどうすればいいのでしょうか?
thisを使うとundefinedが返ってきて、thisを付けないとまだ定義されてないと
エラーが出ます。下記の例だとsideSpaceを参照したいのですが
うまくいきません。

const sp = {
width: 640,
sideSpace: 20,
space: this.sideSpace * 2,
inner: this.width - this.space,
}
2022/03/13(日) 15:48:53.49ID:MhWbhXb10
>>556
getterかProxyを使えば良い
558デフォルトの名無しさん (ワッチョイ 9d01-m3T3 [126.126.240.1])
垢版 |
2022/03/13(日) 17:18:48.53ID:jxSWNPd90
書き直してみたんですがやはりgetSpace()が未定義エラーが出てしまいます。

const sp = {
width: 640,
sideSpace: 20,

get getSpace() {
return this.sidespace * 2;
},

space: getSpace()
};
2022/03/13(日) 17:25:30.15ID:gKsfpaAq0
>>558
const sp = {
width: 640,
sideSpace: 20,
get space() { return this.sideSpace * 2; },
get inner() { return this.width - this.space; },
};
console.log(sp.space); // 40
console.log(sp.inner); // 600
2022/03/13(日) 17:26:15.54ID:MhWbhXb10
>>558
spaceとinnerをgetterにすれば良い
2022/03/17(木) 19:32:02.34ID:v8AF8giY0
関数の引数にオブジェクトを使ってる時要素を固定する方法ってある
例えば

function main(obj){
obj.a;
obj.b;
}

みたいなときaとbだけの要素を受け入れたいんだけど
2022/03/17(木) 19:36:12.35ID:v8AF8giY0
一応その要素があるかで判断して返すって方法はわかるどそれ以外でシンプルな感じで出来ないかなと思って
2022/03/17(木) 19:38:09.18ID:N96K+gAsM
理解できないから適当に答えるが
objに必要なメンバーだけを抽出複製するメソッドを作ってみては?
2022/03/19(土) 14:30:35.47ID:ZaiWDhWv
aysncとawaitで頭がこんがらがってきました

function sleep() {
return new Promise(resolve => {
setTimeout(()=>resolve(),2000);
});
}

async function run(x) {
var a = await sleep();
var b = await sleep();
return x;
}
run(10).then(v=>console.log(v));
//これは4秒後に10と表示されます
//しかし、、

async function run2(x) {
var a = sleep();
var b = sleep();
var _a=await a;
var _b=await b;
return x;
}
run2(20).then(v=>console.log(v));
//これは2秒後に10と表示されます

//一体なぜ・・
var _a=await a; //ここで2秒待ち、
var _b=await b;//ここで2秒待ち、
だと思ったのですが・・・
2022/03/19(土) 14:37:22.28ID:TKJ0fISW0
>>564
遡ってのawaitは不可能
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況