Noncommutative Field

記事検索

<<ECMAScript の組込オブジェクトについてメモ | ECMAScript における this の意味 | このサイトが 1 か月以上ブラクラと化していた件について>>

2005年09月28日

ECMAScript における this の意味

をまとめてみた。

this がグローバルコードにある

Global オブジェクト。

a = 0;
this.a;//0

this が関数コードにある

関数が単体で呼び出された

Global オブジェクト。

function func(){
    return this;
};
a = 1;
func().a;//1
関数がオブジェクトから呼び出された

呼び出したオブジェクト。

var object = {};
object.func = function(){
    return this;
};
object.func() == object;//true
関数が Function::prototype::apply や Function::prototype::call によって呼び出された
applycall の第1引数が null または undefined

Global オブジェクト。

function func(){
    return this;
};
a = 2;
func.call(null).a;//2
applycall の第1引数が null でも undefined でもない

第1引数がオブジェクトを指し示していたら、そのオブジェクト。そうでないなら、第1引数の表す値を Object 型に変換した結果のオブジェクト。

function func(){
    return this;
};
var object = {};
func.call(object) == object;//true

Tips

(function(){return this})() とやるとソースのどんな場所からでも Global オブジェクトが取得できる。

posted by malt3rd at 15:02 | TrackBack(0) | ECMAScript

この記事へのトラックバック

プロフィール

名前
malt3rd
URL
http://www.geocities.jp/commutativefield/
メールアドレス
malt3rd {dot} NoncommutativeField {at} submit-asap {dot} org
Powered by Seesaa

RDF Site Summary

×

この広告は1年以上新しい記事の投稿がないブログに表示されております。