万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    cocos-JS functionの入れ子の時のthis指定での変数の意味

    var TitleLayer = cc.Layer.extend({
        selectCount: 0, // 使いたい変数
        ctor: function() {
            // 呼ばれる関数
            var calledFunc = function() {
                cc.log(this.selectCount); // これをログに出す
            }
    
           // 略〜〜〜〜
            var hogeButton = cc.MenuItemImage.create(
                res.hoge,
                res.bar_png,
                function() {
                    calledFunc(); // ここから関数を呼ぶ
                }, this)
    
           // 略〜〜〜〜
    });
    

    ログには

    cocos2d: JS: NaN

    となった。
    TitleLayerのfunction内(今回はcalledFunc)でthis.selectCountを呼び出すと、
    TitleLayerではなくcalledFunc関数のselectCountを指定していることになっている?
    「undefined」ではなく「NaN」となっているのも不思議。