var name="window";
var obj =
}obj.sayhello();
"use strict"//嚴格模式下
function foo()
foo();//undefined
*///在普通模式下,普通函式,誰呼叫這個函式,this就指向誰
function foo()
foo();//全域性函式可以看作是window的方法
var name="window";
var age1=20;
let age2=10;
console.log(window.age1);//20
console.log(window.age2);//undefined,let定義的不屬於全域性定義
var obj =
}obj.sayhello();//obj物件
console.log(obj.name);//objname
var name="window";
var obj = }}
obj.sayhello()();//window
上面相當於這個
var f=obj.sayhello();
obj.sayhello();//空
console.log(obj.sayhello());//輸出函式體
var name="window";
var obj = ) }}
obj.sayhello();//window
箭頭函式的this指向問題
箭頭函式this指向定義這個箭頭函式時所在環境中的this
在哪個地方定義就指向那個地方的this
var foo=()=>
foo();//window
var name="window";
var obj =
}obj.sayhello();//window
上面**執行機制相當於
var obj={};
obj.name="onjname";
obj.sayhello=()=>
obj.sayhello();//window
var name="window";
var obj = }}
obj.sayhello()();//obj
var name="window";
var obj = }}
obj.sayhello()();//window
var name = "window";
var obj = )}}
obj.sayhello(); //obj
ES6的箭頭函式this和普通函式的this區別
普通函式中,內層函式不能從外層函式中繼承this的值,在內層函式中,this會是window或者undefined,臨時變數self用來將外部的this值匯入到內部函式中 另外的方式是在內部函式執行.bind this es6中的箭頭函式會直接呼叫的this是繼承父級的this。functionfu...
Js中嚴格模式和非嚴格模式的區別
use strice 整個js檔案都是嚴格模式下執行的 var n 1 var foo function var n 1 var foo function 嚴格模式下,delete運算子後跟隨非法識別符號 即delete 不存在的識別符號 會丟擲語法錯誤 非嚴格模式下,會靜默失敗並返回false 嚴...
箭頭函式 普通函式中的this指向
this指向在箭頭函式和普通函式中的表現是不同的。1 箭頭函式 首先要明白的是箭頭函式的this指標是固定的,就是箭頭函式被定義時其所在環境的物件 因為箭頭函式其實自己是沒有this指標的,其this指標是判定了其直接外層的函式的this指標 這裡說的是函式而不是物件,因為物件不直接形成單獨的作用域...