私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ+ JavaScript の質問用スレッド vol.119 +
JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
> グローバル空間でeventを拾っている為、負荷の高い処理をしてタイミングを違えると別のイベントを拾ってしまう。
イベントがマルチスレッドで実行されない限り、別のイベントを拾う事はないでしょ
逆にマルチスレッドだったら、イベント内のプログラムがまともに動かないよ
イベントがマルチスレッドで実行されない限り、別のイベントを拾う事はないでしょ
逆にマルチスレッドだったら、イベント内のプログラムがまともに動かないよ
質問です。
簡単なクイズのサイトを作ろうと思ってますが、
javascriptでクイズの答えを判断させようとすると
解答者にはソースを表示で一発でばれることに気づきました。
みなさんならどのようにクイズの答えを判断させますか?
ちなみに、私はこんな感じに作ってしまいました。
if(moji == "う"){window.alert("正解");}
簡単なクイズのサイトを作ろうと思ってますが、
javascriptでクイズの答えを判断させようとすると
解答者にはソースを表示で一発でばれることに気づきました。
みなさんならどのようにクイズの答えを判断させますか?
ちなみに、私はこんな感じに作ってしまいました。
if(moji == "う"){window.alert("正解");}
「簡単なクイズ」だからぱっと見て分からない程度に出来たらいいんじゃね
ステートフルJavaScriptは
var Person = function(){};
(function(){
var findById = function(){ /* ... */ };
Person.find = function(id){
if (typeof id == "number")
return findById(id);
};
})();
のような形で、プライベートなメソッドを作る方法を紹介しています
メソッドはこの形でできますが、
インスタンスにプライベートなプロパティを持たせる場合はどうやればいいのでしょうか?
var Person = function(){};
(function(){
var findById = function(){ /* ... */ };
Person.find = function(id){
if (typeof id == "number")
return findById(id);
};
})();
のような形で、プライベートなメソッドを作る方法を紹介しています
メソッドはこの形でできますが、
インスタンスにプライベートなプロパティを持たせる場合はどうやればいいのでしょうか?
プロパティとか、言葉の意味を知らないで質問してるのかな
入門書でちゃんと基礎からやらないと上達しないよ
入門書でちゃんと基礎からやらないと上達しないよ
プライベートプロパティを作るために
インスタンスごとにクロージャを作るのはどうなのか?と思うのです
ステートフルJavaScriptの著者は
_でプライベートなメンバを作る方法を「醜悪」と言っていますが
インスタンスごとのプライベートメンバについては何も言っていません。
_を、自分はさほど醜悪だとは思いません。
通常の技術者なら間違えることはない、実際的な方法だと思います
プライベートメンバを厳密に実現するのはあくまで理想論で、
実際に使われているコードは多くの場合_を使っているのではないかと思うのですが
どうなのでしょうか?
インスタンスごとにクロージャを作るのはどうなのか?と思うのです
ステートフルJavaScriptの著者は
_でプライベートなメンバを作る方法を「醜悪」と言っていますが
インスタンスごとのプライベートメンバについては何も言っていません。
_を、自分はさほど醜悪だとは思いません。
通常の技術者なら間違えることはない、実際的な方法だと思います
プライベートメンバを厳密に実現するのはあくまで理想論で、
実際に使われているコードは多くの場合_を使っているのではないかと思うのですが
どうなのでしょうか?
>>761との関連が意味不明
>のような形で、プライベートなメソッドを作る方法を紹介しています
>メソッドはこの形でできますが、
>インスタンスにプライベートなプロパティを持たせる場合はどうやればいいのでしょうか?
>のような形で、プライベートなメソッドを作る方法を紹介しています
>メソッドはこの形でできますが、
>インスタンスにプライベートなプロパティを持たせる場合はどうやればいいのでしょうか?
>>767
本気で言ってるなら単にあなたが愚かなだけです
本気で言ってるなら単にあなたが愚かなだけです
先に言ったようにこれはA級質問ですので、A級以上の方お願いします
並の人が無理に答えようとするとおかしな感じになりますので
並の人が無理に答えようとするとおかしな感じになりますので
初心者が設計の根幹を学ぶ書籍に手を出して、枝葉末節の葉っぱに引っかかってしょうもない質問を連発してるって感じ。
負け惜しみはいいですからw
分かることは答える
分からないことは黙っておく
この方針でお願いします
分かることは答える
分からないことは黙っておく
この方針でお願いします
ことわります。
だいたいこのスレはそんな馴れ合いでやってるんじゃない。
やるかやられるかの世界だ。
だいたいこのスレはそんな馴れ合いでやってるんじゃない。
やるかやられるかの世界だ。
>>761
function objectFactory(hoge){
var private = hoge;
var obj = { public: function(){return private}}
return obj;
}
var obj = objectFactory("fuga");
みたいな感じですかね
簡単でわかり易いからよく使うよ
function objectFactory(hoge){
var private = hoge;
var obj = { public: function(){return private}}
return obj;
}
var obj = objectFactory("fuga");
みたいな感じですかね
簡単でわかり易いからよく使うよ
>>775
なるほど
ファクトリでクロージャにするんですね
そうなると直接newせずに必ずファクトリを経由する感じになりますね
あるいはファクトリをコンストラクタ関数のメンバにしたらキレイできるかもしれませんね
少しこの方向で考えてみます
ありがとうございました
なるほど
ファクトリでクロージャにするんですね
そうなると直接newせずに必ずファクトリを経由する感じになりますね
あるいはファクトリをコンストラクタ関数のメンバにしたらキレイできるかもしれませんね
少しこの方向で考えてみます
ありがとうございました
技術的な言葉をまったく使わずに煽る人が何でこのスレにいるのか分かりませんね
そんなに底が見えるのが嫌なのでしょうか?
その姿勢から底が見えてるんだが?
そんなに底が見えるのが嫌なのでしょうか?
その姿勢から底が見えてるんだが?
A級ってどのくらいですか?
日本の会社に雇われて、翻訳された技術書読んで
コードを書く仕事をしてるレベルだと何級ですか?
日本の会社に雇われて、翻訳された技術書読んで
コードを書く仕事をしてるレベルだと何級ですか?
>>775
S級()の俺がやってきましたよ↓ここまで書ければS級
var Hoge = (function () {
var private;
function Hoge(hoge) {
private = hoge;
}
Hoge.prototype.hage = function () {
console.log(private);
};
return Hoge;
})();
var hoge = new Hoge('hage');
hoge.hage(); → hage
S級()の俺がやってきましたよ↓ここまで書ければS級
var Hoge = (function () {
var private;
function Hoge(hoge) {
private = hoge;
}
Hoge.prototype.hage = function () {
console.log(private);
};
return Hoge;
})();
var hoge = new Hoge('hage');
hoge.hage(); → hage
>>784
なるほど
コンストラクタをまるごと即時関数に包むのですね
ステートフルJavaScriptでは
汎用的なClassクラスを作っているのですが、
そのClassクラスとの親和性も良さそうです
ありがとうございました
なるほど
コンストラクタをまるごと即時関数に包むのですね
ステートフルJavaScriptでは
汎用的なClassクラスを作っているのですが、
そのClassクラスとの親和性も良さそうです
ありがとうございました
angularでhtmlを拡張してますが、これって、どうやってやってるんですか?
ng-appとかng-animateとか
JQueryでできますか
ng-appとかng-animateとか
JQueryでできますか
>>766
ES6のWeakMapを使えば外部からアクセスできないインスタンスごとの値を持てる
ただのMapだとメモリリークになるから注意
var Person = (function () {
var mName = new WeakMap;
function Person(name) {mName.set(this, name);}
Person.prototype.getName = function () {return mName.get(this);};
return Person;
})();
var p1 = new Person('hoge');
var p2 = new Person('fuga');
[p1.getName(), p2.getName()].toString(); // "hoge,fuga"
クロージャによる擬似プライベート変数は古くから言われているが
http://javascript.crockford.com/private.html
インスタンスごとにメソッドも生成することになってメモリ使用量が増える
結局_を付けるとか命名規則で対処するのが一番手っ取り早い
ES6のWeakMapを使えば外部からアクセスできないインスタンスごとの値を持てる
ただのMapだとメモリリークになるから注意
var Person = (function () {
var mName = new WeakMap;
function Person(name) {mName.set(this, name);}
Person.prototype.getName = function () {return mName.get(this);};
return Person;
})();
var p1 = new Person('hoge');
var p2 = new Person('fuga');
[p1.getName(), p2.getName()].toString(); // "hoge,fuga"
クロージャによる擬似プライベート変数は古くから言われているが
http://javascript.crockford.com/private.html
インスタンスごとにメソッドも生成することになってメモリ使用量が増える
結局_を付けるとか命名規則で対処するのが一番手っ取り早い
> インスタンスごとにメソッドも生成することになってメモリ使用量が増える
具体的にどれくらい増えますか?
具体的にどれくらい増えますか?
>>794
ES6なら出来るんですね
現時点だと
コンストラクタの中でPrivileged methodを作るクロックフォードのやり方か
命名規則か
という判断になりそうですね
ありがとうございました
ES6なら出来るんですね
現時点だと
コンストラクタの中でPrivileged methodを作るクロックフォードのやり方か
命名規則か
という判断になりそうですね
ありがとうございました
>>794
ES6のWeakMapってそれ想定して提案してるんならすげーださくね?
別に>>794ディスってるわけじゃなくES6のドラフト検討してるやつに対してな。
いまさら、MapとSetを仕様に入れるとかいってるが10年遅いんだよw
Objectと純粋なMapを分離する仕様さっさとぶち込めばよかったのによ。。。
あと、ES5のセッターゲッターってJSの言語仕様と親和性高くなさそうでうれしくなかった。
それなら、__watch__実装しろって思ったね
仮にセッターゲッター入れるならインデクサもついでに入れれば言語仕様として綺麗になった(Array.prototype.lengthとか)のにほんと頭のいいアホどもだとおもうよ。
ES6のWeakMapってそれ想定して提案してるんならすげーださくね?
別に>>794ディスってるわけじゃなくES6のドラフト検討してるやつに対してな。
いまさら、MapとSetを仕様に入れるとかいってるが10年遅いんだよw
Objectと純粋なMapを分離する仕様さっさとぶち込めばよかったのによ。。。
あと、ES5のセッターゲッターってJSの言語仕様と親和性高くなさそうでうれしくなかった。
それなら、__watch__実装しろって思ったね
仮にセッターゲッター入れるならインデクサもついでに入れれば言語仕様として綺麗になった(Array.prototype.lengthとか)のにほんと頭のいいアホどもだとおもうよ。
クロージャを使う方法だと、
プライベートメンバにアクセスするメソッドをすべてインスタンスメソッドにしないといけないんですね
ゲートウェイとなるインスタンスメソッドを一つ作るだけで出来るかと思っていたのですが
それだとプライベートにならないので。
そうするとプライベートメンバを作るために別種の醜さを導入することになると思いますし
やはり命名規則法が妥当ということになると思います
ありがとうございました
プライベートメンバにアクセスするメソッドをすべてインスタンスメソッドにしないといけないんですね
ゲートウェイとなるインスタンスメソッドを一つ作るだけで出来るかと思っていたのですが
それだとプライベートにならないので。
そうするとプライベートメンバを作るために別種の醜さを導入することになると思いますし
やはり命名規則法が妥当ということになると思います
ありがとうございました
function Hoge(){
var private = {
hoge: 100
};
this.getPrivate = function (){
return private;
};
}
中庸的な方法だとこういう方法もありますね
getPrivateを使ってアクセスする奴はおらんやろということで。
でも_に直アクセスする人も普通はいないんですよね
var private = {
hoge: 100
};
this.getPrivate = function (){
return private;
};
}
中庸的な方法だとこういう方法もありますね
getPrivateを使ってアクセスする奴はおらんやろということで。
でも_に直アクセスする人も普通はいないんですよね
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.113 + (1001) - [97%] - 2014/1/25 12:46
- + JavaScript の質問用スレッド vol.110 + (1001) - [97%] - 2013/10/13 14:01
- + JavaScript の質問用スレッド vol.129 + (926) - [97%] - 2017/7/27 13:45
- + JavaScript の質問用スレッド vol.129 + (981) - [97%] - 2016/5/5 8:16
- + JavaScript の質問用スレッド vol.118 + (1002) - [97%] - 2014/8/29 22:30
- + JavaScript の質問用スレッド vol.117 + (1009) - [97%] - 2014/8/5 3:30
- + JavaScript の質問用スレッド vol.116 + (1002) - [97%] - 2014/7/1 0:45
- + JavaScript の質問用スレッド vol.115 + (1001) - [97%] - 2014/5/29 16:16
- + JavaScript の質問用スレッド vol.114 + (1001) - [97%] - 2014/5/3 10:45
- + JavaScript の質問用スレッド vol.112 + (1001) - [97%] - 2013/11/27 16:46
- + JavaScript の質問用スレッド vol.111 + (1001) - [97%] - 2013/11/4 6:00
- + JavaScript の質問用スレッド vol.113 + (1001) - [97%] - 2014/3/15 21:30
- + JavaScript の質問用スレッド vol.139 + (1001) - [97%] - 2019/5/27 15:15
- + JavaScript の質問用スレッド vol.109 + (1001) - [97%] - 2013/10/7 13:16
- + JavaScript の質問用スレッド vol.121 + (1001) - [95%] - 2015/1/1 18:30
- + JavaScript の質問用スレッド vol.125 + (1001) - [95%] - 2015/10/7 17:45
- + JavaScript の質問用スレッド vol.124 + (1001) - [95%] - 2015/7/16 1:30
トップメニューへ / →のくす牧場書庫について