(JavaScript)為什麼無法呼叫函式內的函式?

時間 2021-05-30 19:22:12

1樓:「已登出」

new的作用是建立乙個物件,然後把這個物件作為thisArg傳遞給被呼叫的函式,然後把這個物件作為返回值返回。

所以v = new f()

大致上(並不完全)可以看作

f.call(_)

v=_那麼v的值是什麼呢?

那麼v或其原型鏈上是否具有f1呢?

沒有。以上。

2樓:

建議學習「原型鏈」。

v.f是undefined。v.

__proto__ = f.prototype。v自身沒有屬性f,所以從原型鏈上查詢。

f.prototype也沒有f1,f作為建構函式也沒有對例項this進行屬性初始化。原型鏈繼續向上是Object.

prototype,沒有f1。Object.prototype向上是null。

整條原型鏈上都沒找到f1,所以v沒有f1屬性。

你現在寫的是在函式作用域內宣告新的函式,並沒有影響到f的原型或例項原型鏈上的父級原型,怎麼可能通過v呼叫到f1嘛!既然你都用了new,OO獨有的this你要用乙個吧!

為什麼JavaScript裡面typeof null 的值是 object ?

自由的囚徒 這是JS語言本身的乙個bug。不同的物件在底層都表示為二進位制,在js中二進位制前三位都為0的話會被判斷為object型別,null的二進位制表示全是0,自然前三位也是0,所以執行typeof時返回 object 阿布丁 說句人話,不說書裡的鬼話 因為 所有引用型別的名字是乙個指標,指的...

你為什麼選擇 JavaScript ?

牆外一枝花 多年前,面試的時候,一邊是三年.net 給你6k,一邊是3個月js也是6k,所以沒那麼多為什麼,最初的選擇源於人性的最基本訴求,溫飽。 題葉 最開始上網,沒人教程式設計,我唯一能折騰的東西只有瀏覽器,高中用 GreenBrowser 替換了 IE 自以為很開心,後來知道 Opera,最後...

JavaScript 為什麼要把 this 暴露出來

孫竟 這是動態語言帶來的靈活性啊,Python 也是這樣。在不需要靈活性的地方,你完全可以不用 this。可是你用到了,就說明你確實需要。舉例來說,你怎麼在 C 裡傳遞乙個物件的方法?想想都覺得很麻煩。而 JS 可以把乙個函式和物件通過 Function.prototype.bind 繫結在一起 即...