lang
="en"
>
>
charset
="utf-8"
>
name
="viewport"
content
="width=device-width, initial-scale=1.0"
>
>
function經典面試題title
>
head
>
>
>
// 建構函式
function
foo(
) */
getname
=function()
console.
log(
'this指向'
,this);
return
this;}
// 函式foo上的靜態方法 -> 靜態方法指:乙個函式物件上的方法/屬性
foo.
getname
=function()
/* 擴充套件函式原型上的方法,推導:
var foo = new foo() -> foo.getname
new foo().getname
*/foo.prototype.
getname
=function()
// 給全域性變數賦值為乙個匿名函式
vargetname
=function()
// 函式宣告
function
getname()
// 下面函式執行的結果:
/* 分析執行過程:foo.getname();
這裡執行的是函式上的靜態方法 getname ,執行結果為 2
*/foo.
getname()
;// 執行結果:2
/* 分析執行過程:getname();
js預編譯過程,go
go 依次找:變數宣告和函式宣告
function () 變數賦值,執行結果為 4}*/
getname()
;// 執行結果:4
/* 分析執行過程:
直接執行foo(),foo函式中的this指向window
函式foo()返回值為this,也就是 this.getname()
也就是:window.getname()
執行函式foo時,getname重新被賦值,
getname= function ()
*/foo().
getname()
;// 執行結果:1
/* 分析執行結果:
因為上面的 window.getname() 的結果為 1
推測:直接訪問 getname() 的結果也是 1
*/getname()
;// 執行結果:1
/* 分析執行結果:
new 作用於 foo.getname() 而不是 foo 注意:區別 new foo(),此時new 作用於foo
其實訪問的是foo下面的函式getname() 也就是 foo靜態方法getname,所以執行結果為 2
此時 new 沒有什麼特殊含義,它僅僅 new 了 foo靜態方法getname指向的函式,function()
foo靜態方法getname中的this指向:foo函式
而 new foo.getname(),this指向乙個物件:foo.getname {}
*/newfoo.getname()
;// 執行結果:2
/* 分析執行結果:推導
var foo= new foo(); // 例項化物件 foo 例項化物件繼承了原型物件上的方法和屬性
foo.getname() 也就是 foo.prototype.getname
所以執行結果 3
*/newfoo()
.getname()
;// 執行結果:3
/* 分析執行結果:推導如上
這裡的第乙個new,沒有什麼實際意義,執行過程:
new foo()
new foo().getname(); // 這裡可以出結果 3
new new foo().getname(); // 再次 new 3
知識:new 的作用是讓函式內部返回乙個新的物件。
new fun.a() 其實就是呼叫fun.a(),只是new的物件是fun.a函式
*/newnew
foo().
getname()
;// 執行結果:3
/* 拓展內容: new new foo();
報錯:uncaught typeerror: (intermediate value) is not a constructor
*/script
>
body
>
html
>
經典面試題
1.以下三條輸出語句分別輸出什麼?char str1 abc char str2 abc const char str3 abc const char str4 abc const char str5 abc const char str6 abc cout boolalpha str1 str2 ...
經典面試題
我的老同學現在富得流油。他開創了乙個軟體公司,開發了一系列軟體,生意越做越大。今天他來到這個城市後馬上打 給我。是我啊!聽出來了嗎?是這樣的,我到這兒的大學招畢業生,要在這兒呆上五天,咱哥們趁這個時間好好聚一聚。我做東!既然他要做東,我理所當然順水推舟。人家是老闆,不吃白不吃!我來到他下榻的賓館,看...
經典面試題
分兩個情況 perfork模式 worker模式 前者程序模式 後者執行緒模式 故檢視方法也有區別 oldboy.log 參考 分析 此類問題是運維工作中最常見的問題。可以演變成分析日誌,檢視tcp各個狀態連線數,檢視單ip連線數排名等等 第一類 過濾網域名稱方法 方法很多 這裡給出六種為例。還可以...