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

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

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

801 = :

ぬるぽきゃんせらー

802 = :

>>798
どのレスのことなのかレス番つけてください

803 = :

>>802
>>788
ES5.6 の情報なら>>5

804 = :

クロージャって、関数が作成された後にも
その変数の内容はリアルタイムに追尾されるんですか?

関数を作成してクロージャにする
→元関数の中で変数を変更する
→作成した変更の中で渡された変数を参照する

変数の内容は?

805 = :

作成された関数の中で、でした

806 = :

(function (){
var a = 'hoge';
_.delay(function(){
console.log(a);
},60);
a = 'moge';
}());

とやったらリアルタイムに反映してました

807 = :

>>796
違いを理解したからこそ「頭が悪い」と判断したんじゃなかったの?

808 = :

関数の中で関数を作成することでしかクロージャは実現できないのでしょうか?
既に存在する関数に変数を封入することはできませんか?

809 = :

>>808
具体的に何がしたいんだ?
よそから渡された関数の環境を書き換えたいとか?

810 = :

>>801 ガッ

811 = :

>>808
その関数専用の大域変数を作りたいということなら
bind を使うのがいいんでないか

812 = :

>>808
おかしな事を言っている
関数は定義した時点で使う変数が決まっている
後で追加するという事はその変数を使うコードはどうするんだ?

813 = :

参照渡しして書き換えるみたいなことが簡便に出来ないかと思ったのです

814 = :

>>813
それがオブジェクトだったら普通に引き数で渡して
プリミティブだったらインラインで配列を作成して引き数で渡すかね

815 = :

>>813が何をしたいのかよく判らんが、こういう感じ?

function foo(name, age){
var data = {age: age};
function ret() {
console.log(name + ": " + data.age);
}
ret.data = data;
return ret;
}

var fn = foo("kikko", 17);
fn(); // kikko: 17

fn.data.age = 49;
fn(); // kikko: 49

816 = :

var a = function(){}
変数に代入して、aで使うと、見にくいだけで、特に損がない

関数名で使うと、その度にインタプリタが、
関数が同じかどうかを確認したり、
ちょっとした書き間違いや引数の違いでも、
どう処理されるかわからない

JSは間違いでもエラーにならず、処理が進むため、
余計な間違いを避けたい

817 = :

変数に代入して、aで使うと、見にくいだけで、特にメリットがない。

の間違いだな。

818 = :

変数に代入して複数箇所でコールバックとして使うんだろ
はい論破

819 = :

いつまでこの話題を引きずるんだろう
自己完結してるなら黙ってればいいのにね
指摘回答を待ってるのが透けて見える

820 = :

別に変数に代入しなくても複数箇所でコールバックとして使えるんじゃないの?

821 = :

そう言われればそうか

822 = :

関数定義は関数定義より前のコードで使えるが
代入は代入してからでないと使えない
したがってスタティックな性質のものなら関数定義、
ダイナミックな性質のものなら代入がいい
はい論破

823 = :

関数の定義のスコープは
・関数定義
・関数名に代入
だけですか?
window.a = function() {};
とかすれば関数定義とほぼ同じなのでしょうか

824 = :

「関数の定義のスコープは関数定義」
「関数の定義のスコープは関数名に代入」
ってどういう意味?

825 = :

>>823
>>803

826 = :

>>824
もっと柔軟に文章を読む努力をしてください

>>825
なるほどすっきりしました
ありがとうございました

827 = :

代入したほうがメモリが節約できるからね

828 = :

それは違うんじゃ・・・

829 = :

代入だと上書きされる危険がある
はい論破

830 = :

function foo() {
console.log("I'm foo!");
}

var foo = function() {
console.log("I'm bar!");
}

foo(); // I'm bar!

関数定義だって上書きされるけどね。

function foo(){} は、
var foo = function(){} の構文糖と考えていい。
foo.nameに関数名が入ることを除いて違いはない。

832 = :

もう少し詳しく。

834 = :

指定した文字列のテキストノードを持つ要素を探す方法があれば教えて下さい
例えば <div>ほげほげ</div> のような要素を探したいときに
現在はgetElementsByTagName('div')からforで子ノードを調べています

835 = :

>>834
class属性つけるのアリなら

html
<div><div class="hoge">hogeほげほげhoge</div>
<span>ほげほげ</span>
<div>ほげほげ</div>

javascript
console.log($("div.hoge:contains('ほげほげ')"));

840 = :

>>826
いや、努力してもわからんから聞いている

「関数の定義のスコープ」の「スコープ」とは

何から何が見えていることを意味しているのだ?
「だけですか?」の「だけ」とはどのような制約を意味しているのだ?

841 = :

そもそもわからなければ、答える・られる人がくるまで
もしくは、質問の補足があるまでスルーすればいい
それかエスパーして解答すればいい

842 = :

>>834
文書の変更が許されない/変更したくないなら
NodeIterator か TreeWalker で1個ずつ探索するしかないか

TreeWalker の方が
テキストノード 1 個だけを含む
という条件で要素を探索できるので効率的に行える

巨大な文書で多量の検索がある場合はもっと効率的にやるために
インデックスを作成することになるだろう

843 = :

>>841
エスパー回答ばかりで荒れた状況があることを考えると安易に同意できないかな
質問者もある程度の努力は必要かと

844 = :

>>829
お前はロンパールームに行って二度と帰って来るな

845 = :

文字をクリックする→その後別の場所をクリックする→その間の文字列が選択状態になる
という機能が、いろんなアプリに付いていますが、
chromeにもあります
それが想定外の部分で働いて文字が選択状態になることがあります
clickイベントをpreventDefaultしても防げないようです
どうすれば防げるでしょうか

846 = :

http://jsbin.com/fajotupu/1/edit

文字列のどこかをクリックし、その後シフトキーを押しながら別の場所をクリックすると
その間の文字列が選択されるとい機能が
色々なアプリにあります
これがchromeで想定していないところで発動して困っています
クリックイベントでpreventDefaultしても止まらないようです
JSでは止めることは出来ないのでしょうか?

847 = :

janeが変で連投になってしまいました

848 = :

というか、書き込みが一部消えたような??

849 = :

なにこれ
レスがごっそり無くなってるぞ

850 = :

どこが消えてるの?全部表示されてますよ


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

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


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