javascript基礎 手寫bind

2021-09-23 02:01:38 字數 586 閱讀 6791

function.prototype.bind = function (that) 

var args = .slice.call(arguments, 1); // 呼叫bind傳遞進來的引數,除去第乙個引數obj test.bind(obj, pram)

var ftobind = this;

var fnop = function() {}; // 用來複製this的原型

var fbound = function () ,

bar()

}var f = o.foo.bind();

new f(); // 111 undefined => new 對bind失效,導致this不為,而是foo{}*/}

fnop.prototype = this.prototype;// 繼承原函式的原型,這裡不直接fbound.prototype = this.prototype,是為了避免兩個原型指向同乙個物件,相互影響

fbound.prototype = new fnop();// 利用中介函式實現原型的繼承

return fbound;

}

手寫JavaScript模板引擎

這次的模板是類似下面這樣的 var str 今天是 天氣 我今天的計畫是,var reg g console.log str.match reg 上面的是通過正則進行匹配到的,很明顯匹配到了 這樣子的,w是匹配單詞,但是下面的模板就沒辦法都匹配了 var str 今天是 天氣 我今天的計畫是,var...

javascript函式基礎 this基礎

this是函式體內自帶的乙個物件指標,它能夠始終指向呼叫物件 這個this代表的物件由this所在的執行作用域決定的,而不是根據this所在的定義作用域決定。this 屬性 如果this未包含屬性,則直接傳遞的是當前物件 1.this代表當前操作物件 this即代表 物件input 2.this代表...

javascript 基礎 動畫

function positionwhere js 有兩個地方我一直沒注意 現在寫出來提醒一下自己 1.在html中的匯入是有順序的js的執行的非同步且高速 依賴其他方法執行的指令碼必須在他依賴的指令碼的後面匯入 不然速度太快了 依賴的方法還沒匯入就直接去尋找 找不到的 比如addloadevent...