window.a = 1; // 定義乙個全域性變數
var obj = // 定義乙個物件用來繫結
var funct = function(b, c) ; // 定義乙個函式用來執行
funct(1, 2); // 1 1 2 // 直接執行,相當於window.funct(1, 2),this繫結於window
base = base || window; // 傳遞繫結的物件為null或undefined時指向window
var result = base.fn(...args); // 呼叫base.fn時,fn中的this指標指向的是base,並使用spread操作符展開引數傳參
delete base.fn; // 刪除base物件的fn屬性
return result; // 將返回值返回
}
funct.call(thisarg[, arg1[, arg2[, ...]]])
thisarg
: 必選,在funct
函式執行時使用的this
值,this
可能不是該方法看到的實際值,如果這個函式處於非嚴格模式下,則指定為null
或undefined
時會自動替換為指向全域性物件,原始值會被包裝。
arg1, arg2, ...
: 可選,指定的引數列表。
實現思路,類似於function.prototype.call()
,同樣將_call()
方法掛載到function.prototype
,使得函式物件能夠直接呼叫,在呼叫funct._call()
時,在_call()
方法中的this
指向的是funct
物件,將此funct
物件作為乙個變數賦予將要繫結的物件的乙個屬性中,使用將要繫結的物件來呼叫這個funct
,即可實現this
指標指向將要繫結的物件,對於引數的處理,使用es6
的rest
操作符來接收剩餘引數,使用es6
的spread
運算子將陣列展開作為引數傳遞。
window.a = 1; // 定義乙個全域性變數
var obj = // 定義乙個物件用來繫結
var funct = function(b, c) ; // 定義乙個函式用來執行
funct(1, 2); // 1 1 2 // 直接執行,相當於window.funct(1, 2),this繫結於window
funct.call(obj, 1, 2); // 2 1 2 // 使用call將this繫結到obj物件
function.prototype._call = function(base, ...args)
funct._call(obj, 1, 2); // 2 1 2 // this繫結到了obj物件
funct.bind(thisarg[, arg1[, arg2[, ...]]])
window.a = 1; // 定義乙個全域性變數
var obj = // 定義乙個物件用來繫結
var funct = function(b, c) ; // 定義乙個函式用來執行
funct(1, 2); // 1 1 2 // 直接執行,相當於window.funct(1, 2),this繫結於window
var bindfunct = funct.bind(obj, 1, 2); // 使用bind將this繫結到obj物件,bind方法返回乙個原函式的拷貝,並擁有指定的this值和初始引數。
bindfunct(); // 2 1 2
function.prototype._bind = function(base, ...args1)
}var _bindfunct = funct._bind(obj, 1, 2); // 繫結物件
_bindfunct(); // 2 1 2
手動實現strncmp
自己寫的版本 int strncmp char s1,char s2,int maxlen ansi c版本 難懂 360doc.com content 11 0422 23 1317564 111662313.shtml include int strncmp register const cha...
C AOP手動實現
1.使用者註冊介面和實現 public inte ce iuserprocessor public class userprocessor iuserprocessor password user.name,user.password public class user public string ...
KNN 手動實現
knn 的實質是根據 值 與訓練集之間的距離來進行分類。下面 使用 歐氏距離來表示點集之間的距離,具體 如下 class knn def fit self,x,y self.x train x self.y train y def predict self,x,k x train self.x tr...