ECMAScript 5 strict mode では call(null) がダメな理由 - Togetter
Twitterのつぶやきマッシュアップメディア!
@togetter_jpをフォロー
マイページ
メニュー
設定
ログイン
トップ
ニュース
社会
地域
芸能・スポーツ
IT・Web
科学・教養
カルチャー
趣味
生活
仕事
ネタ・お笑い
ログ・日記
震災
311
ネタ
岩上安身
なりきり
支援物資
放射脳
復興
速報
国内
アジア
アメリカ
ヨーロッパ
その他
政治
経済
国際
法律
環境
コラム
東京
東京近郊
北海道
東北
関東
北陸・信越
東海
近畿
中国・四国
九州・沖縄
海外
芸能
テレビ
ラジオ
野球
サッカー
ゴルフ
格闘技
競馬
モータースポーツ
その他
Android
Apple
インターネット
パソコン
モバイル
ガジェット
サイト制作
プログラミング
その他
科学
テクノロジー
エネルギー
数学
物理
宇宙
自然
人文
建築
心理
その他
アニメ
ゲーム
マンガ
アイドル
映画
音楽
書籍
演劇
ファッション
社会学
カメラ
車・バイク
電車
旅行
釣り
歴史
アート
デザイン
動物
その他
ハウツー
レシピ
グルメ
恋愛
マネー
節約
健康・医療
教育
ペット
起業・ベンチャー
経営
マーケティング
会計・人事
法務
就職・転職
語学・資格
ネタ
お笑い
大喜利
画像・動画
やってみた
その他
ログ
日記
思い出
雑談
メモ
飲み会
議事録
イベント
セミナー
復興
原発
支援
政府
自治体
トップ
>
トップ
>
311
> ECMAScript 5 strict mod..
2010/02/17 17:51:00
ecmascript
javascript
+
ECMAScript 5 strict mode では call(null) がダメな理由
ECMAScript 5 strict mode では Function.prototype.call, Function.prototype.apply の第1引数に null ないし undefined を与えても、実行関数スコープの this 値がグローバルオブジェクトにならない理由。
あと、通常モードでは ECMAScript 3 互換がとれている(this 値がグローバルオブジェクトになる)理由。
by
taku_eof
2 fav
1081 view
Fav
2
お気に入りに登録ならここをクリック!
まとめ
メニューを開く
一括削除
ES5 の仕様読んでるけど "use strict" だと call(null) が使えないってどこに書いてあるのかわからない。
返信する
RTする
ふぁぼる
edvakf
2010/02/17 16:05:37
javascript:alert( function(){return this}.call(null) ) がいいかも。
返信する
RTする
ふぁぼる
edvakf
2010/02/17 16:25:01
@edvakf
strict mode 時の Function.prototype.call 挙動については、仕様の P233 下から4つめのリスト項目に、どのセクションで説明されているかの参照が掲載されてます。あとはそれを追いかければ……。
返信する
RTする
ふぁぼる
taku_eof
2010/02/17 16:27:00
@taku_eof
一番下にあったのですね。本編を読んでも出てこないわけだ。今から読みます。
返信する
RTする
ふぁぼる
edvakf
2010/02/17 16:30:00
@edvakf
PDF119ページの冒頭のNOTEにあります。callでの挙動は、strict限定の話ではないみたい
返信する
RTする
ふぁぼる
os0x
2010/02/17 16:31:55
use strict じゃなくても call(null) は使えないって、ちょっと問題出そうな気がする…
返信する
RTする
ふぁぼる
edvakf
2010/02/17 16:35:38
あれ、でもおかしい、別のところに、thisArg が null or undefined だったら global に置き換えろと書いてあったぞ。
返信する
RTする
ふぁぼる
edvakf
2010/02/17 16:37:08
@edvakf
こっちはエラーではなく、globalがundefinedになる、だと思います、たぶん
返信する
RTする
ふぁぼる
os0x
2010/02/17 16:37:38
@os0x
58ページの Else if thisArg is null or undefined, set the ThisBinding to the global object. とどう関わってくるのか気になるところです。
返信する
RTする
ふぁぼる
edvakf
2010/02/17 16:38:14
あ、58ページに書いてあった。If the function code is strict code, set the ThisBinding to thisArg.
返信する
RTする
ふぁぼる
edvakf
2010/02/17 16:42:00
@edvakf
そっちはcallでthisを明示してない場合です。良くある無名関数の実行などではthisはglobal objectになります。で、ここがstrictモードではnullです。
返信する
RTする
ふぁぼる
os0x
2010/02/17 16:42:41
call したときはまだ thisArg が null のまま (これは ES3 から変更) だけど、entering function code で strict mode じゃなければ null を global にしろと書いてある。
返信する
RTする
ふぁぼる
edvakf
2010/02/17 16:43:35
strict mode なら thisArg をそのまま (global にしたり ToObject したりせずに) ThisBinding すると。
返信する
RTする
ふぁぼる
edvakf
2010/02/17 16:45:31
javascript:alert(function(){return this}.call()) は normal mode では window で strict mode だと undefined
返信する
RTする
ふぁぼる
edvakf
2010/02/17 16:46:34
あれ、nullじゃなくてundefinedかも…。
返信する
RTする
ふぁぼる
os0x
2010/02/17 16:46:55
@edvakf
Function.prototype.callを使っている場合、normal modeでもundefinedになるのでは?
返信する
RTする
ふぁぼる
os0x
2010/02/17 16:48:51
いや、明示してなければならないか。function(){return this}.call()とfunction(){return this}.call(undefined)で違いがでるのかな。うーん。
返信する
RTする
ふぁぼる
os0x
2010/02/17 16:51:00
@os0x
58ページの下のリストを見ていくと、strict なら thisArg をそのまま ThisBinding にして、そうじゃなければ、と続きます。なので normal mode では互換性が保たれます。
返信する
RTする
ふぁぼる
edvakf
2010/02/17 16:53:49
@edvakf
なるほど、15.3.4.4 Function.prototype.callが呼ぶ13.2.1 [[Call]]のなかで、thisは10.4.3見ろとあるので、そうなりそうです。
返信する
RTする
ふぁぼる
os0x
2010/02/17 17:10:08
Content from Twitter
ブログへ
iframe版
拡張版
張付けプレビュー
Fav
2
あわせて読みたい
ECMAScript 5th の strict mode で global コンテキストを得るには
ECMAScript 6 (ES.next) で導入予定の Object.isObject について
javascript:alert([].sort.call(null)) == [object window] の謎
ECMAScript の catch 節のスコープのお話
arguments.calleeがstrictモードで禁止な理由
powered by Preferred Infrastructure
コメント
コメントを入力してください。
Twitterにも投稿する
みんなのおすすめ商品
商品を編集
おすすめ商品を登録する
設定を変更する
まとめを作成する
プロフィール
フォローする
Front End Engineer, Programmer. Be strict with yourself.
taku_eof
link
twitter
rss
アップデート
まとめ
1
0
ECMAScript 5 strict mode では ..
お気に入り
59
新着のまとめ
ぺりえさん(@perie_jp)が聞いた、攻撃..
new
佐藤正美Tweet_20120516_31
new
振津かつみ先生 講演会「福島の被曝とどう向き合..
new
第57回『IF I AM』(5月31日配信)
new
ジャニーズ銀座YOUの前にはMEがいる! 内博..
new
もっと見る
@togetter_jp
最近追加された商品
漢検 四字熟語辞典 第二版
おはなしで身につく四字熟語
会話で覚える四字熟語 (京都書房ことのは新書)
論理データベース論考―データ設計の方法:数学の基礎とT字形ER手法
まんがで覚える 天下無敵の四字熟語
オススメ
マイスター
トゥギャ通
発達障害児を育てる幸せ満タン親バカなツイート集
up
なんか素敵な無線LANが飛びまくってる
new
InsideCHIKIRIN (ちきりん)氏の..
埼玉南部の奴らがみた変な虹の写真まとめ
「個人攻撃はあってはならない」と、全国紙に広告..
up
(仮)女子あるあるネタ
もっと見る
まだおカフェ最終日の様子まとめ
new
からすけ まとめ
new
#キッザニアにあるべき職業体験を挙げてけ まとめ
new
「女川」ツイートまとめメモ 2012/05/3..
new
#ホモオの一番かわいい亜種考えたやつが優勝 まとめ
new
「#お前らお勧めの戦争映画を教えろ」
new
もっと見る
第80回「日食写真と昭和格差」
号外「みんなの金環日食まとめ―画像から教養ま..
第79回「虚構新聞とJリーグ」
第78回「コンプガチャとIT系かあちゃん」
第77回「びろーんと自宅警備隊」
第76回「Appleとパンツクッキー」
もっと見る
コメント