のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,934人
昨日:no data人
今日:
最近の注目
人気の最安値情報

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

    JavaScript覧 / PC版 /
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter

    351 = :

    >>350-350
    ありがとうございます!完全に分かりました。助かります…

    352 = :

    JavaScript のthis は、global のwindow などを指してしまうから、クソ仕様

    だから、jQuery, Haxe では、this を修正している

    353 = :

    Rubyは最も一般的な方法で定義した関数(関数じゃないw)が値として取り回せない(第一級関数でない)クソ言語wwwww
    def add(a, b)
    a + b
    end
    def opTwo(a, b, func)
    func(a, b)
    end
    p opTwo(1, 2, add)
    => Line 9:in `add': wrong number of arguments (0 for 2) (ArgumentError)
    from t.rb:9
    プギャーm9(^Д^ )

    ちなみにPython:
    def add(a, b):
    return a + b

    def opTwo(a, b, func):
    return func(a, b)

    print(opTwo(1, 2, add))
    => 3

    ちなみにJavascript:
    function add(a, b) {
    return a + b;
    }
    function opTwo(a, b, func) {
    return func(a, b);
    }
    console.log(opTwo(1, 2, add))
    => 3

    354 = :

    >>353
    RubyにはRubyのやり方がある

    はず

    355 = :

    やり方?
    あるよねーいっぱいw
    def 、proc、Proc.new、->、lambda、ブロック、・・挙動と使いどころの異なるこれら関数ライクを使いこなし、
    ==、===、eql?、equal?の違いと使いどころを完璧に把握しているRuby信者wwwww

    356 = :

    >>347
    逆ギレワロタw

    357 = :

    スクリプト内部でcreateElement('canvas')として動的にキャンバス要素を作成しているのですが、このキャンバスを右クリック、「名前をつけて画像を保存」を選択すると、すべてのファイル(*.*)となってしまいます。
    jpegやpng形式で保存出来るようにしたいのですが、どうすればいいのでしょうか? どなたか教えて下さい。
    使用しているブラウザはグーグルクロームです。

    358 = :

    保存ボタン付けるならやったことあるけど右クリックか。
    どうやるんだろ?

    359 = :

    >>352
    指してしまうってw
    指す用に自分で書いてるだけなのに…

    プログラムは思うようには動かんの
    書いたように動くだけ

    360 = :

    >>345
    thisは全ての関数内でキーワードとして動作する
    だから「持つ」「持たない」というとそういう仕組みを持っているのかの話と
    取られかねないのでオススメしない

    thisキーワードは[[ThisValue]]が束縛され得る最も近いスコープを検索して
    その[[ThisValue]]を参照しようとする
    アロー関数の関数スコープは束縛しない事になっているので検索から外される

    361 :

    何を言ってるのか分からんが、少なくとも俺はアロー演算子を使わない方が良さそうということだけよく分かる

    362 = :

    なんでやねんw

    363 = :

     function hoge(){}

    hogeはwindow(global)のメソッドだからthisはwindow

     var A = {
       hoge : function(){}
     };

    hogeはAのメソッドだからthisはA


     var img = document.querySelector('#img');
     img.addEventListener('click', A.hoge);
     img.addEventListener('click', function(){ });

    imgにA.hogeという関数がバインドされて実行されるからthisはimg
    ただし

     img.addEventListener('click', () => { });

    アローの場合は、ひとつ上のスコープのthis



    て理解であってますか?

    364 = :

    >>363
    > var A = {
    >   hoge : function(){}
    > };
    >↑
    >hogeはAのメソッドだからthisはA

    A.hoge()で呼び出される限りにおいてはYes。
    「FunctionオブジェクトがAのhogeプロパティに設定されている」だけで
    必ずしも「Functionオブジェクトを呼び出したときのthisがAになる」わけではない

    この辺がクラスベース言語のインスタンスメソッドとは違うので、混乱しやすいとこですね

    365 = :

    コールバック関数って数Ⅲに出てきた合成関数みたいな認識でいいんですかね?

    367 = :

    >>363
    違う
    thisは関数の呼ばれ方によって決まって
    「.」演算子によってReference内部型が作られるときに決まる
    直に呼ぶとsloppy modeのときはglobalになるという決まりなだけ
    簡単に言うとobj.func()と呼んだ時onjがthisになるというだけ
    thisは第0番目の引数とでも思えば良い

    368 = :

    >>365
    見た目はそうだけど、そう言って良いもんかどうか
    まあ引数に関数渡して、そっちで実行してねってやつだよ

    例えば関数Aの後に関数Bを実行したいけど、Aが

    function A(){
      setTimeout(function(){

        // ふはははは、いつ終わるかわかるまい!

      }, Math.floor( Math.random() * 1000 ));
    }

    こんなのだと、Bをいつ発火させればいいかわからん
    そんなとき

    function A( callback ){
      setTimeout(function(){

        // おわたぁ!
        callback();

      }, Math.floor( Math.random() * 1000 ));
    }

    こうしておいて

    A( B );

    ってすれば、ちゃんとAが終わってからBが発火する、よね!
    って考え方がコールバック

    369 = :

    数学の合成関数ってのは

    x = y + 1 = f(y)、 y = z - 1 = g(z)

    としたとき

    x = f( g(z) )

    と出来るねって話
    これをプログラムっぽく書くと

    function f(y){ return y + 1; }
    function g(z){ return z - 1; }

    x = f( g(z) );

    こんな感じになる
    これは関数fの引数に、関数gを実行した結果を渡しているわけであって
    関数gを渡しているわけではない

    のでこれはコールバックとは呼ばない、と思う

    370 = :

    数学の「=」は等号だけど
    プログラムの「=」は代入なので
    そのへん気をつけて

    371 = :

    漫画のコマ割りツールを作ろうとしているのですが
    (1)テンプレート(ブログのカラムみたいな)方式
     ・1ページ分、コマ単体の中にさらにテンプレートを用意、みたいな
     ・テンプレート以外の微妙な調整ができない
    (2)mousemoveなりで(居合斬りみたいに)直線で切り分け方式
     ・割った部分だけの削除後の再描画のアルゴリズムがよくわからない
     ・柔軟性あり
    (3)線描画ツール方式
     ・特定の図形を描画できる
     ・テンプレート式だが柔軟性もある
     ・目視配置なのでズレが気になる(マス目内だけを移動するように補正すればよいかも)
    を考えてみました(まだ作っていない)
    何か効率の良いアイデアはないでしょうか?
    (おそらく普通?は(2)のシミュレーション方式で、canvasに再描画する感じで
    コマと枠線を選択し編集できる機能を別々に作ってー、という風にすると思うのですが
    せっかくなのでブラウザとかHTMLやCSSをうまく組み合わせて効率よくできないものかと思ったのです)

    すでに作ったもので言えば、DOM要素に横割り縦割り機能をつけ
    要素を割ったら(要素の中に要素を作る)その中の要素にも縦横割り機能がつく、をループ(比率調整付き)
    みたいなのは作ったのですが、垂直割りしかできないのでなんか今一です(キャプチャはブラウザの拡張)
    要素を台形とかにできれば良いのですが・・

    372 = :

    >>370
    JSの=は代入じゃない
    所謂共有渡しにおける名前付け

    373 = :

    Assignment Operators
    Syntax
    http://www.ecma-international.org/ecma-262/5.1/#sec-11.13

    JSで参照になるのはArrayや関数含めたオブジェクトで、数値やtrue/falseなどのプリミティブ値は値で、文字列はちょっと特殊じゃなかったっけ。
    本当に全部参照になってるのはPythonだった気がする

    374 = :

    >>371
    そのまま作り続けろ
    1年後行き詰まるからCanvasで作り直せ
    10年後良いものができてる
    冗談でなくおれはそうしてものづくりをしてきてる

    375 = :

    >>373
    JSに参照とかはない(Reference型はあるが)

    値は基本的に複製されることはなく
    すべて同一存在の名前付けの連鎖でしかない
    要するにお前が会社ではタッ君と呼ばれ、家ではターちゃんと呼ばれてるのと同じ

    376 = :

    あんまり触らないほうがよさそうだな

    377 = :

    変に他の言語に引っ張らなければJavaScriptはシンプルでわかりやすい言語だと思うけどなぁ

    378 :

    簡単な電卓を作成できるようになった初心者ですが、
    初心者から中級者を目指すのにオススメな参考書ってありますか?
    JavaScript コードレシピ集か、改訂新版JavaScript本格入門とか
    検討中です。レシピ集はアマゾンレビューで、この本を見て実際に
    コードを書いて動かしてみる。という学習が一番身につくと思う
    とか書かれてますが買った人いたら感想聞かせて欲しいです。
    田舎すぎて置いてある本屋さんがありません。

    379 = :

    >>371
    何かの図形描画ツールを参考にすれば?

    380 :

    今jsのロクでも無い部分ってあるのかな
    昔はundefinedがうんちだった

    381 = :

    undefinedなんて実際に問題になることなかったろ
    undefinedに何か代入するとかワザと壊しにかかってるんだからその結果壊れても問題ないでしょ
    他にも置き換えられたら困るものなんて無数にあるんだし

    383 = :

    node.jsの使い途が分からない。

    384 = :

    >>383
    使わなきゃいいじゃん

    385 = :

    使いみちが分からんものを使ってみるのも大事だぞ
    そのときには使えなくても後々使うかもしれない

    387 = :

    Node.js、コマンドラインでは毎日使ってるし
    (ただ単にバッチファイルをダブルクリックしたら起動してファイルを生成してくれるってだけだけど)

    一応localhostでなんやかんやするやつのチュートリアルもやったけど
    それらを組み合わせて色々するとなると、コールバック地獄とか大変だと聞くので
    なかなか重い腰が上がらずにいる
    うまく使えたらすごく良さそうだと思うんだけど
    このへんどこで学んだらいいものか

    388 = :

    JSでclip-pathを操作したいのですが、検証ツールで見ると「at center center」というおかしな値になってしまっています。
    JSで設定できないCSSプロパティがあるということでしょうか?

    http://jsfiddle.net/0vrcehsf/1/

    389 = :

    VSCode で、Code Runner という拡張機能を入れて、右クリックメニューまたは、
    Ctrl+Shift+P から、Run Code で、node.js で実行される

    node は、npm, yarn を使うのに必須だから

    他にも、webpack, babel, vue.js なども、たぶん、node が必須だろ

    391 = :

    Math.sign(a)

    392 = :

    同期処理と非同期処理がよくわかりません
    iframe使ったら勝手に非同期処理になるんですか?

    393 = :

    a>0?1:a<0?-1:0

    394 = :

    >>391
    それでした!ありがとうございます

    危うく >>393 みたいなことするところでした

    395 = :

    まぁ0きたときに微妙かもしれんが

    396 = :

    (a<0)*-1||1

    397 = :

    >>393 みたいなことしたら何かマズいのか?

    398 = :

    別に>>391の方が性能や可読性高いわけでもなし、>>393で何の問題もないと思うけど

    399 :

    >>391
    はカッコイイけど俺の可読性が低いので使わないと思う
    signとか距離求めるっ時ぐらいしか使わないよぉ


    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について