js中各種this超詳細解釋

2021-09-24 19:28:30 字數 2056 閱讀 5327

全域性中的this就是window物件

var box=document.getelementbyid("box");

box.onmouseover=function()

con

//con

在非嚴格模式下瀏覽器中執行,this指的是window

在非嚴格模式node互動介面中,this指的是預設暴露出的模組

在非嚴格模式node的js檔案中,this指的是global物件

(function())()
// 在嚴格模式下this為undefined (嚴格模式下函式呼叫時省略window)

(function())()

//函式.call()會直接呼叫該函式,並且call中的第0個引數就是函式執行中的this,後面的引數是函式執行時的引數

function fn(m,n)

fn.call(,2,3); //1 2 3

//函式.bind()會返回乙個新的函式,新函式的引數就是原函式執行中的this,這個新函式不會立即執行,this被修改,但是只能被修改一次

function fn()

var fn1=fn.bind();

fn1(); //2

與定義時環境中的this一樣,bind和call不能修改其內部this指向

var fn=()=>

fn();//window

var box=document.getelementbyid("box");

box.onclick=function(),1500)

}

全域性中定義箭頭函式this為window物件

fn=()=>

fn();//window

物件內部定義的箭頭函式this指向window

因為歸根到底,obj物件也是在全域性中定義的,但是普通的函式就指向物件本身了,因為普通函式被誰呼叫,this就指向誰
物件內部的函式返回箭頭函式

物件呼叫物件內部的函式時,this指向該物件

var obj1=

}obj1.fn1(); //obj

obj1.fn1.bind()(); //zds

但是如果後續新增的函式是箭頭函式,this指向還是遵循箭頭函式在哪定義,this就指向誰

var obj2=;

//全域性定義乙個箭頭函式fn3

var fn3=()=>

obj2.fn3=fn3;

obj2.fn3(); //window

多層巢狀物件中的函式呼叫時,this指向為「就近原則」

var obj3=

},}obj3.y.fn1();//y物件

var temp=obj3.y.fn1;

temp();//window

function person(name,age);

}var p1=new person('朱東帥',22);

console.log(p1);

var p=

}var c=object.create(p); //以p為模板建立乙個新的物件

console.log(c);

console.log(c.a); //如果乙個物件上沒有某個屬性或者方法時,它會隨著原型鏈__proto__去找

console.log(c.__proto__); //p物件

console.log(p.__proto__); //js內建物件

c.fn(); //1

var obj=,

set sum(z)

}console.log(obj.sum);

DAPP超詳細解釋

什麼是eth?eth就是核心開發者為了應對黑客盜取以太幣,從而呼籲分叉出的新鏈。相比於舊鏈etc,eth雖然違背了不可撤銷的誓言,但是它更靈活 更容易擴充套件和進化,因此所能承載的應用更多。把以太坊看成虛擬機器,也就是evm,相當於裸機,而eth是基於區塊鏈技術構建出來的類似android系統的開發...

js原型鏈詳細解釋

說到原型鏈不得不提到建構函式,任何乙個物件都是由建構函式new出來的,其建構函式通過new來使用,作用是例項化物件。原型 任何乙個函式都有乙個prototype屬性。下圖就是建構函式,例項化,原型的關係圖。1.建構函式通過.prototype找到原型上的屬性和方法。2.例項化的物件能通過 proto...

JS獲取各種寬度,高度解釋

紅色是大塊的邊框,藍色是小塊的邊框,藍框外白色區域是大塊的 padding 或 和 小塊的 margin 或其他元素或其他原因造成的空白。obj.offsettop 指 obj 相對於版面或由 offsetparent 屬性指定的父座標的計算上側位置,整型,單位畫素 obj.offsetleft 指...