【javascript】this

5303 ワード

1、関数プリコンパイルプロセスthis-->window
2、グローバルスコープ内のthis--window
3、call//appyは関数運転時のthisの指向を変えることができます.
4、obj.func() func()の中のthisはobjを指します.
5、例題:
(1)          var f = (
                function f() {
                    return "1";
                },
                function g() {
                    return 2;
                }
            )();
            typeof f;    //   ‘number,        ,     
2)     var x = 1;
            if(function f() {}) {
                x += typeof f;
            }
            console.log(x);    //  ‘1undefined’


(3){} == {}  -->false        {}         

(
4) var name = '222'; var a = { name : '111', say : function() { console.log(this.name); } } var fun = a.say; fun(); // 222 a.say(); // 111 var b = { name : '333', say : function (fun) { fun(); } } b.say(a.say); // 222 // b say this b, , this, window b.say = a.say; b.say(); // 333 (5) var foo = 123; function print() { //var this = Object.create(print.prototype)   this.foo = 234; // this foo ,          console.log(foo); // 123        }        new print(); (6)    var a = 5; function test() {           a = 0;           alert(a); //0           alert(this.a); //undefined this a           var a;           alert(a); //0        }      new test(); AO{ a : 0, this : {} }