【javascript】this
5303 ワード
1、関数プリコンパイルプロセスthis-->window
2、グローバルスコープ内のthis--window
3、call//appyは関数運転時のthisの指向を変えることができます.
4、obj.func() func()の中のthisはobjを指します.
5、例題:
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 : {} }