var func = function (a, b, c) ;
複製**
var func = function (a, b, c)
func.call (null, 1, 2, 3);
複製**
var func = function (a, b, c) ;
複製**
如果是嚴格模式下,函式體內的this還是null
var func = function (a, b, c) ;
複製**
複製**
(1) 可以改變this指向
var obj1 = ;
var obj2 = ;
window.name = 'angelababy';
var getname = function
() ;
getname(); // 輸出:angelababy
getname.call(obj1); // 輸出:lq
getname.call(obj2); // 輸出:xiaoming
複製**
(2) function.prototype.bind
幾乎所有的高階瀏覽器都內建了function.prototype.bind方法用來指定函式內部this指向問題。如果不支援原生的function.prototype.bind,我們可以自己實現乙個:
function.prototype.diybind = function (context)
};var obj =
var func = function
() .diybind(obj);
func();
複製**
上面是簡化版的,下面是稍微複雜點的版本:
function.prototype.binds = function()}
var obj =
var func = function(a, b, c, d).binds(obj,1, 2);
func(3,4);
複製**
(3)借用其他物件的方法
借用的第一種場景是「借用建構函式」:
var a = function (name)
var b = function
() b.prototype.getname = function
() var b = new b('xiaoming');
console.log (b.getname()); //輸出:xiaoming
複製**
借用的第二種場景是「借用array.prototype物件上的方法」,比如:
(function
())(1, 2)
複製**
在操作arguments時我們經常會借用array.prototype物件上的各種方法。比如想把arguments轉成真正陣列時,可以借用array.prototype.slice方法。想截去arguments列表中的第乙個元素,可以借用array.prototype.shift方法。 JS學習筆記 之 try catch
try catch e finally 處理流程 a.正常執行try內的 b.遇到錯誤,停止執行後續try內的 並跳轉到catch部分,同時將錯誤資訊封裝到error物件中傳入catch i.執行catch部分 可利用傳入的error物件,列印錯誤資訊 通過try catch 捕捉到的錯誤資訊不會丟...
js學習筆記之正則
是為了提取匹配的字串。表示式中有幾個 就有幾個相應的匹配字串。s 表示連續空格的字串。是定義匹配的字元範圍。比如 a za z0 9 表示相應位置的字元要匹配英文本元和數字。s 表示空格或者 號。一般用來表示匹配的長度,比如 s 表示匹配三個空格,s表示匹配一到三個空格。0 9 a z a z 包含...
JS學習筆記(四)之除錯
使用控制台檢查變數值 console.log 使用 type of 檢查變數的型別 console.log typeof 輸出 string console.log typeof0 輸出 number console.log typeof 輸出 object console.log typeof 輸...