私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレ+ JavaScript の質問用スレッド vol.93 +

みんなの評価 :
レスフィルター : (試験中)
new忘れたときに意図しない場所にプロパティ追加されたりするとかってやつじゃないか
>>411
なるほど!よくわかりました!
なるほど!よくわかりました!
関数定義も一応文として見れるんじゃない?
つうか実装レベルでみてみると定義しづらいね
つうか実装レベルでみてみると定義しづらいね
オブジェクト指向の書き方がいまいち分かりません
関数をベタ書きで書いたりprototypeを乱用してます
良いオブジェクト指向の書き方で参考になるサイトを教えてください
関数をベタ書きで書いたりprototypeを乱用してます
良いオブジェクト指向の書き方で参考になるサイトを教えてください
>>460
ありがとうございます
良いJavaScriptを書こうと思います
添削をお願いしてもいいでしょうか?
var a = new Object();
a.time = new Date();
alert(a.time);
という書き方は良いでしょうか?
ありがとうございます
良いJavaScriptを書こうと思います
添削をお願いしてもいいでしょうか?
var a = new Object();
a.time = new Date();
alert(a.time);
という書き方は良いでしょうか?
まあ好みの範囲で悪くないと思うよ
一つ言うならtimeって明確な名前の子を持ってる
オブジェクトの名前がaって素朴過ぎる感じがする
場合によるけどこれなら別に
var time = new Date();
でいいんじゃないかと思う
一つ言うならtimeって明確な名前の子を持ってる
オブジェクトの名前がaって素朴過ぎる感じがする
場合によるけどこれなら別に
var time = new Date();
でいいんじゃないかと思う
おそらく以降の処理でも使うんじゃないかな。
だから変数に入れているわけで。
だから変数に入れているわけで。
var a = { time: new Date() };
こう?こうでいいんすね?怒られないすね?
こう?こうでいいんすね?怒られないすね?
>>467
何をそんなに怯えてるんだよw
何をそんなに怯えてるんだよw
>>463
> 子飼弾先生に指摘されたら怖い
もしかして: 小飼弾
本人に直接聞いた方がいいよ。その人がどう判断するかをここの住人が知ってるわけないんだから。
(小飼弾氏はjavascripterとしては大物ではないと思うけど。)
> 子飼弾先生に指摘されたら怖い
もしかして: 小飼弾
本人に直接聞いた方がいいよ。その人がどう判断するかをここの住人が知ってるわけないんだから。
(小飼弾氏はjavascripterとしては大物ではないと思うけど。)
>>474
続けるなら名前を 457 にして。文脈から全部追うのは難しい。
続けるなら名前を 457 にして。文脈から全部追うのは難しい。
>>472
グローバル変数にフラグを置く手法はどうかと思うけど、ハンドラ関数の中で分岐させるのが主流だと思う。
unbind() でイベント削除してもいいけど、その都度削除したり追加したりするのは効率がよくない。(ケースバイケースだけどね)
http://api.jquery.com/unbind/
グローバル変数にフラグを置く手法はどうかと思うけど、ハンドラ関数の中で分岐させるのが主流だと思う。
unbind() でイベント削除してもいいけど、その都度削除したり追加したりするのは効率がよくない。(ケースバイケースだけどね)
http://api.jquery.com/unbind/
すいませんでした457ってコテハンつけます
var a = {
"name":"坂本",
"age":"16",
"func":function(x){return x * 100;}
};
alert(a.func(10));
っていうのと
var a = function(){}
a.prototype.name = "坂本";
a.prototype.age = "16";
a.prototype.func = function(x){return x * 100;};
var obj = new a();
alert(obj.func(10));
っていうのと
var a = new Object();
a.name = "坂本";
a.age = "16";
a.func = function(x){return x * 100;};
alert(a.func(10));
この3つの中で良い書き方と悪い書き方を教えてください
var a = {
"name":"坂本",
"age":"16",
"func":function(x){return x * 100;}
};
alert(a.func(10));
っていうのと
var a = function(){}
a.prototype.name = "坂本";
a.prototype.age = "16";
a.prototype.func = function(x){return x * 100;};
var obj = new a();
alert(obj.func(10));
っていうのと
var a = new Object();
a.name = "坂本";
a.age = "16";
a.func = function(x){return x * 100;};
alert(a.func(10));
この3つの中で良い書き方と悪い書き方を教えてください
>>480
はっきり言うけど、どーでもいい。こう書いたらこうなる、それが分かれば問題なし。
はっきり言うけど、どーでもいい。こう書いたらこうなる、それが分かれば問題なし。
>>480
サイ本のページ数も示していただけると参照しやすく助かります。
(P96) "function文は厳密に言うと文ではありません。"
(P125) "function文は、構文上は文であり、関数名が必要です。関数リテラルは、構文上は式であり、関数名が不要です。"
ここでいわれる "構文上は" はおそらく Syntax を表しています。
"function文" は FunctionDeclaration に相当するので「構文上は関数定義」が正しいですね。
"関数リテラル" は FunctionExpression に相当するので「構文上は式」で合っています。
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/13_Function_Definition.html#section-13
ただし、その後の "関数名が不要です" は誤りです。
FunctionExpression では Identifier (関数名) がオプションであり、省略することも命名することも可能です。
var a = function b () { // 名前付き関数式
alert(b); // b はこの関数内でのみ呼び出せる
};
名前付き関数式は IE8- でスコープが漏れるバグがありますが、関数名を付けるとデバッグ時に有効だそうです。
また、再帰処理するときにも有効です。
ES5 の Strict Mode で arguments.callee を使えなくて困っている人は命名しておけば便利だと思います。
# サイ本は比較的仕様に忠実な方ではありますが、完全ではありません。
# ECMAScript として見ればおかしいと感じるところはいくつかあります。
# 「function文」や「関数リテラル」はその一つで ECMAScript にない用語です。
# 説明の便宜上、あえてそう表現しているのでしょうが、その用語が仕様から来ているのか便宜上のものなのかを認識してから判断しないといろいろ混乱するところが出てくると思います。
サイ本のページ数も示していただけると参照しやすく助かります。
(P96) "function文は厳密に言うと文ではありません。"
(P125) "function文は、構文上は文であり、関数名が必要です。関数リテラルは、構文上は式であり、関数名が不要です。"
ここでいわれる "構文上は" はおそらく Syntax を表しています。
"function文" は FunctionDeclaration に相当するので「構文上は関数定義」が正しいですね。
"関数リテラル" は FunctionExpression に相当するので「構文上は式」で合っています。
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/13_Function_Definition.html#section-13
ただし、その後の "関数名が不要です" は誤りです。
FunctionExpression では Identifier (関数名) がオプションであり、省略することも命名することも可能です。
var a = function b () { // 名前付き関数式
alert(b); // b はこの関数内でのみ呼び出せる
};
名前付き関数式は IE8- でスコープが漏れるバグがありますが、関数名を付けるとデバッグ時に有効だそうです。
また、再帰処理するときにも有効です。
ES5 の Strict Mode で arguments.callee を使えなくて困っている人は命名しておけば便利だと思います。
# サイ本は比較的仕様に忠実な方ではありますが、完全ではありません。
# ECMAScript として見ればおかしいと感じるところはいくつかあります。
# 「function文」や「関数リテラル」はその一つで ECMAScript にない用語です。
# 説明の便宜上、あえてそう表現しているのでしょうが、その用語が仕様から来ているのか便宜上のものなのかを認識してから判断しないといろいろ混乱するところが出てくると思います。
ちょっと疑問なんですが
aの場合はコンストラクタはどう書けばよいのでしょうか?
aの場合はコンストラクタはどう書けばよいのでしょうか?
>>480
Syntax は確かに構文解析をする場合にも使います。(JSLint とかコード圧縮器とか)
覚えていて便利だと感じるのはその構文が ECMAScript に準拠していて動くのか、実装依存で動いているのか判断する場合でしょうか。
例えば、関数名としてどの文字が許されているのかを知りたい場合には Identifier を読みます。
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/7_Lexical_Conventions.html#Identifier
メモリリークは実装(ブラウザ依存)の話なので仕様(ECMAScript)上の問題とは切り離して考える必要があると思います。
仕様に絡めるならhttp://msdn.microsoft.com/ja-jp/library/bb250448%28v=vs.85%29.aspx で説明されている疑似リークを出来るだけ発生させない(クロージャを作らない)ことが重要ですが、厳密にはメモリリークしてませんよね…。
「循環参照によるメモリリークのバグは混入しやすいから循環参照は形成しないようにしよう」とアドバイスを受けることはあります。
>>488
IE8- で実行していませんか?
Google Chrome 16 では "ReferenceError: b is not defined" になります。
http://d.hatena.ne.jp/think49/20110521/1305959222
Syntax は確かに構文解析をする場合にも使います。(JSLint とかコード圧縮器とか)
覚えていて便利だと感じるのはその構文が ECMAScript に準拠していて動くのか、実装依存で動いているのか判断する場合でしょうか。
例えば、関数名としてどの文字が許されているのかを知りたい場合には Identifier を読みます。
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/7_Lexical_Conventions.html#Identifier
メモリリークは実装(ブラウザ依存)の話なので仕様(ECMAScript)上の問題とは切り離して考える必要があると思います。
仕様に絡めるならhttp://msdn.microsoft.com/ja-jp/library/bb250448%28v=vs.85%29.aspx で説明されている疑似リークを出来るだけ発生させない(クロージャを作らない)ことが重要ですが、厳密にはメモリリークしてませんよね…。
「循環参照によるメモリリークのバグは混入しやすいから循環参照は形成しないようにしよう」とアドバイスを受けることはあります。
>>488
IE8- で実行していませんか?
Google Chrome 16 では "ReferenceError: b is not defined" になります。
http://d.hatena.ne.jp/think49/20110521/1305959222
chromeのjavascriptのコンソールで入力するたびにフォーカスがコンソールから外れちゃうんですけど
ショートカットかなにかでコンソールにフォーカスを合わせる方法ありませんか?
いちいちマウスでコンソールをクリックしないといけないのが面倒くさいです
ショートカットかなにかでコンソールにフォーカスを合わせる方法ありませんか?
いちいちマウスでコンソールをクリックしないといけないのが面倒くさいです
>>481
var Ningen = function(name, age){
this.name = name;
this.age = age,
this.func = function(){ return this.name + "は" + this.age + "歳です。";};
};
var sakamoto = new Ningen("坂本", 16);
alert(sakamoto.func());
var Ningen = function(name, age){
this.name = name;
this.age = age,
this.func = function(){ return this.name + "は" + this.age + "歳です。";};
};
var sakamoto = new Ningen("坂本", 16);
alert(sakamoto.func());
var a = { // オブジェクト初期化子
name: "坂本",
age: "16",
func: function (x) { return x * 100; }
};
function b () { ; } // コンストラクタ関数
b.prototype = {
name: "坂本",
age: "16",
func: function (x) { return x * 100; }
};
var c = new Object();
c.name = "坂本";
c.age = "16";
c.func = function (x) { return x * 100; };
単一オブジェクトを生成するなら、a
複数オブジェクトを生成するなら、b
c は不要
name: "坂本",
age: "16",
func: function (x) { return x * 100; }
};
function b () { ; } // コンストラクタ関数
b.prototype = {
name: "坂本",
age: "16",
func: function (x) { return x * 100; }
};
var c = new Object();
c.name = "坂本";
c.age = "16";
c.func = function (x) { return x * 100; };
単一オブジェクトを生成するなら、a
複数オブジェクトを生成するなら、b
c は不要
ECMAScript 5がいま話題じゃないですか
これってどのブラウザが対応しているかわかりますか?
これってどのブラウザが対応しているかわかりますか?
jQueryのthickboxで開いたiframeの中でもjQueryを使っています。
ChromeとIEでは正常に動くのですがFireFoxで以下のエラーがでます。
c.defaultView.getComputedStyle(h, null) is null
[このエラーでブレーク] (function(a,b){function cw(a){return f...a:a+"px")}}),a.jQuery=a.$=f})(window);
jquery.min.js (16 行目)
jQuery is not defined
[このエラーでブレーク] g[c][1].apply(f.element,a)}},contains:...b.ui.isOverAxis(g,c,i)}})}})(jQuery);
jquery-ui.min.js (17 行目)
jQuery is not defined
[このエラーでブレーク] })(jQuery);
jQuery...kbox.js (155 行目)
$ is not defined
[このエラーでブレーク] $(document).ready(function(){
addres...s=true& (78 行目)
iframeを読み込んだとたんにこのエラーが出てiframe内のjavascriptが
動作しません。
確かFireFoxで最初に動き出してChromeでデバッグしてるうちに
いつの間にか動かなくなっていました。
ちょっとしたことのような気がするのですが、チェックポイントなど
教えていただけると嬉しいです。
よろしくお願いします。
ChromeとIEでは正常に動くのですがFireFoxで以下のエラーがでます。
c.defaultView.getComputedStyle(h, null) is null
[このエラーでブレーク] (function(a,b){function cw(a){return f...a:a+"px")}}),a.jQuery=a.$=f})(window);
jquery.min.js (16 行目)
jQuery is not defined
[このエラーでブレーク] g[c][1].apply(f.element,a)}},contains:...b.ui.isOverAxis(g,c,i)}})}})(jQuery);
jquery-ui.min.js (17 行目)
jQuery is not defined
[このエラーでブレーク] })(jQuery);
jQuery...kbox.js (155 行目)
$ is not defined
[このエラーでブレーク] $(document).ready(function(){
addres...s=true& (78 行目)
iframeを読み込んだとたんにこのエラーが出てiframe内のjavascriptが
動作しません。
確かFireFoxで最初に動き出してChromeでデバッグしてるうちに
いつの間にか動かなくなっていました。
ちょっとしたことのような気がするのですが、チェックポイントなど
教えていただけると嬉しいです。
よろしくお願いします。



類似してるかもしれないスレッド
- + JavaScript の質問用スレッド vol.93 + (1001) - [100%] - 2011/12/10 18:31
- + JavaScript の質問用スレッド vol.97 + (1001) - [97%] - 2012/3/1 3:31
- + JavaScript の質問用スレッド vol.96 + (1001) - [97%] - 2012/1/28 23:01
- + JavaScript の質問用スレッド vol.90 + (1001) - [97%] - 2011/10/26 4:18
- + JavaScript の質問用スレッド vol.90 + (1001) - [97%] - 2011/11/15 20:32
- + JavaScript の質問用スレッド vol.99 + (1001) - [97%] - 2012/5/7 4:32
- + JavaScript の質問用スレッド vol.98 + (1001) - [97%] - 2012/4/9 14:46
- + JavaScript の質問用スレッド vol.83 + (1001) - [97%] - 2011/2/24 8:02
- + JavaScript の質問用スレッド vol.94 + (1001) - [97%] - 2012/1/8 15:46
- + JavaScript の質問用スレッド vol.95 + (1001) - [97%] - 2012/1/17 4:16
- + JavaScript の質問用スレッド vol.113 + (1001) - [95%] - 2014/1/25 12:46
- + JavaScript の質問用スレッド vol.131 + (1000) - [95%] - 2017/1/25 8:01
- + JavaScript の質問用スレッド vol.130 + (1001) - [95%] - 2017/11/25 20:45
- + JavaScript の質問用スレッド vol.131 + (1004) - [95%] - 2018/3/7 13:30
- + JavaScript の質問用スレッド vol.132 + (1001) - [95%] - 2018/4/19 11:00
- + JavaScript の質問用スレッド vol.113 + (1001) - [95%] - 2014/3/15 21:30
- + JavaScript の質問用スレッド vol.133 + (1001) - [95%] - 2018/6/8 10:45
トップメニューへ / →のくす牧場書庫について