簡體   English   中英

我們可以在OOJS中將對象作為函數嗎?

[英]Can we have object as a function in OOJS?

我在過去的采訪中曾遇到上述問題。我說不。我對此表示懷疑。我不知道我們如何真正地將對象用作函數?

是的,我們可以,因為每個function也是JS中的一個object 但反之亦然

我有一個function ,也有一個property 所以我可以調用它並使用它的屬性

 function hello(){ console.log('Hello'); } hello.someProp = 'Some Prop'; hello(); console.log(hello.someProp); 

我想詳細說明一下。

JavaScript真正面向對象的原因是,每當您聲明一個函數時,它都不過是JavaScript 內置對象的新實例(稱為Function)

例如,當您聲明var a = {}時, 對象構造函數將創建一個新對象。 同樣,每當您聲明諸如函數SomFucn(){}之類的函數時,函數構造函數都會創建新函數。

是的,我們可以將函數用作對象,因為反之亦然。

檢出以下代碼。 工作小提琴在這里https://jsfiddle.net/95ejaydL/ (檢查控制台);

console.log(typeof(Object));

console.log(typeof(Function));


Function.prototype.sayHello = "Hello function property";

Object.prototype.sayHello = "Hello Object";

var a = {};

console.log(a.sayHello);

function Hello(){
  console.log("Hello from method");
}

Hello();

console.log(Hello.sayHello);

a();

讓我知道這是否有用。

謝謝。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM