1.給當前元素的某個事件繫結方法,當事件觸發方法執行的時候,方法中的this是當前操作的元素物件
obox.onclick = function()
複製**
2.普通函式執行,函式中的this取決於執行的主體,誰執行的,this就是誰(執行主體:方法執行,看方法名前面是否有「.
」,有的話,點前面是誰this就是誰,沒有this是window
var obj =
};obj.fn();
var fn = obj.fn();
fn();
複製**
3.自執行函式中的this ==>window;function()();
複製**
4.定時器中的thissettimeout(function ())();
複製**
5.建構函式中的this ==> 建構函式中的例項
function foo() var f = new foo(); //=>操作符 構造例項
6.箭頭函式中的this ==> 箭頭函式上級作用域中的this
var key = 13;
var obj2 =
}obj2.fn();
複製**
7.全域性作用域中的this ==>window
8.this一旦被函式包裹,this的指向就需要重新判斷題目一:
function
fn()
var obj =
//=> 執行的是相同的方法(不同的是 函式執行方法的this是不同的)
obj.fn(); //=> this是obj
fn(); //=> this是window
~function()();
複製**
題目二:var length = 5;
var fn = function () ;
var main = }
fn(); // window 5
arguments[0](); // arguments 1
},length: 10
};main.fn(fn);
複製**
題目三:function
fn1()
function
fn2()
function
fn3()
function
fn4()
var ary = [fn1, fn2, fn3, fn4];
ary[1](); // ary
var arry = ary[1];
var arry = function
fn2() ;
arry();
複製**
題目四:var num = 5; //
var obj = ;
})()
};var fn = obj.fn;
fn();
obj.fn();
obj.fn();
console.log(this.num, obj.num); // 6
複製**
題目五:var num = 1; //3 5
var obj = ; // num = 4
obj.fn = (function (num) ;
})(this.num);
var fn = obj.fn;
fn(1);
obj.fn(2);
console.log(num, obj.num); //5 4
複製**
題目六:document.onclick = new
newnew fn;
function
fn()
return
function () (沒有函式名)
//第乙個new 第三次執行,new {} => 報錯
};};複製**
題目七:document.onclick = function () , 1000);
};function
fn() 例項
};複製**
題目八:document.onclick = function () , 1000);
};function
fn() 例項
};複製**
js學習筆記9
29.p190 超類與子類 function rectangle w,h 屬性方法 rectangle.prototype.area function rectangle.max function a,b function positionedrectangle x,y,w,h positioned...
106 js筆記9 js類和建構函式
通過建構函式來定義 大駝峰命名法 通過new來呼叫 對比工廠法,不用手動建立物件和返回值 function person name,age 簡潔,識別物件的具體型別 每個物件都可以訪問乙個名稱叫做constructor的屬性,屬性指向建立該例項的建構函式,通過constructor判斷乙個物件是否屬...
關於JS函式部分的筆記
首先來理解一下什麼事物件 ecma 262是這樣定義的 無序屬性的集合,其屬性可以包含基本值 物件或者函式 也就是說,物件是 名 值 對的集合。var person new object person.name jake person.age 18 person.sayname function 上...