(1)1是公有屬性function person()
(2)function person(){}
person.name = 'tom';
(3)function person(){}
person.prototype.name = 'tom'
2是靜態屬性
3是原型共享屬性
解釋1:
因為 js 裡, 函式也是物件, 是 function 的例項。
function person()
這時候一般把 person 當作建構函式。
const demo = new person()
name 屬性是掛在 new 生成物件, 也就是 demo 上的。
ps: 當然, 你也可以不用 new 呼叫 person。但是可能會發生不可預知的後果。
function person(){}
person.name = 'tom';
這是在函式物件上直接定義了 name 屬性。
function person(){}
person.prototype.name = 'tom'
每個函式都會有乙個 prototype 的屬性(箭頭函式除外)。 name 是放到原型屬性上。
每個用 new 呼叫生成的物件,都可以訪問到它們建構函式原型上的 name 屬性。
解釋2:
因為js裡面函式也是物件。
函式其實也有另乙個寫法就是
a = new function("return 1");
函式也是new出來的,所以函式其實也是乙個物件。所以物件可以新增屬性。 JS 語言的Function 解析
1.最基本的作為乙個本本分分的函式宣告使用。複製 如下 function func 或 var func function 2.作為乙個類構造器使用 複製 如下 function class class.prototype var item new class 3.作為閉包使用 複製 如下 func...
js 中的Function型別
函式的建立有兩種方式 二者基本等價,除了 什麼時候可通過變數訪問函式的區別,以下將舉例證明。以函式宣告的方式來建立,那麼不論在什麼時候訪問函式,都是正確的,因為解析器有函式宣告提公升。sayhello function sayhello 以函式表示式方式來建立,那麼只能在建立之後才能訪問。sayhe...
JS中 function 的理解
這種寫法,是一種立即執行函式的寫法,即iife等設計模式。這種函式在函式定義的地方就直接執行了。理解iife設計模式的關鍵是要認識到,在es6之前,j ascript僅具有函式作用域 因此缺少塊作用域 並通過 閉包內部的引用傳遞值。es6之後情況已不再如此,因為j ascript的es6版本使用le...