手動實現call apply bind

2021-10-13 15:21:06 字數 1015 閱讀 5581

// 第一種方式

function.prototype.

mycall

=function

(context,

...args)

// 第二種方式

function.prototype.

mycall2

=function

(context)

// 測試

let person_call =

,我今年

$,我的工作是$`

)}}let person1 =

person_call.say.

mycall

(person1,19,

"老師");

// 我叫jack,我今年19,我的工作是老師

function.prototype.

=function

(context)

// 測試用例 注意say函式中的引數為args不是...args

,我今年

$,我的工作是$`

)}}let person1 =

// 傳入的是陣列

(person1,[19

,"醫生"])

// 我叫jack,我今年19,我的工作是醫生

// 實現bind 

function.prototype.

mybind

=function

(context)

// 測試用例

let person_bind =

,我今年

$,我的工作是$`

)}}let person1 =

// 和call傳入的引數一樣都是乙個乙個的傳入

var per = person_bind.say.

mybind

(person1,20,

"律師");

per();

// 我叫jack,我今年20,我的工作是律師

手動實現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...