JavaScript 中例項化乙個物件,卻不用 new,為何?

時間 2021-05-31 04:37:07

1樓:方應杭

你如果以前學過物件導向,會覺得這樣做很不「物件導向」。

但是如果你弄清楚 JS 裡面 new 的作用,就不會有疑問了。

JS 的 new 到底是幹什麼的?:知乎專欄

2樓:王聰奕

作為乙個函式,Date物件可以直接呼叫,有沒有引數,直接呼叫Date總是返回當前時間。

作為建構函式,使用new,會返回乙個Date物件的例項。如果不加引數,返回的就是代表當前時間的物件

3樓:悲劇

js特性原因,Date除了是乙個構造器外,同時也是乙個函式,這個沒有new的例子相當於呼叫了Date函式然後把返回值賦值給date,並沒有產生新的Date的例項,所以instanceof返回false。

4樓:sagittarius-rev

不是Date乙個物件的問題,是js語言的特性。

js的物件構造器,實際上是乙個函式。

用new方式,會建立物件的乙個新例項。

如果不用new,相當於直接呼叫函式。建構函式內如果有對this的引用,不會指向新例項本身(也不存在這個新例項),而是會指向呼叫建構函式時的上下文環境。

5樓:

Date作為函式呼叫返回乙個代表當前時間的字串。(http://www.

ecma-international.org/ecma-262/6.0/#sec-date-constructor)When called as a constructor it creates and initializes a new Date object.

When Date is called as a function rather than as a constructor, it returns a String representing the current time (UTC).

6樓:魯小夫

關於 Date() ,題主寫這麼一堆累不累?就不能好好看看規範嗎http://www.

ecma-international.org/ecma-262/6.0/#sec-date-constructor

怎麼理解 JavaScript 的物件和例項?

Watcherlin MyClass 是建構函式,JS中,原生並沒有類的概念。JS的繼承等是通過原生實現的。在你描述的場景中 MyClass 是乙個方法,在跟 new 一起使用的時候就是建構函式。m是MyClass這個建構函式構造出來的例項,它的原型是MyClass.prototype。 建構函式就...

python中,例項化乙個類,和繼承乙個類,都適用什麼場景,有什麼場景就只能用其一麼?

Annie拉拉 例項化是用到了類的封裝特性,例項化後就可以復用裡面的某個方法,而不必自己重複造輪子。繼承是用到類的繼承特性,創造類很大程度是為了繼承,此時呼叫的是類裡面幾乎所有方法 可以改寫 多型 類本身封裝的屬性和方法都是有關聯甚至有步驟的,指向更龐大的特性和功能,封裝層次越高復用性越低,所以類的...

JavaScript中 ArrayBuffer 物件與 Blob 物件到底有什麼區別?

navegador 我說乙個很表面的,通常來說node比瀏覽器自由,但是瀏覽器的blob 有匹配的createObjectUrl node目前沒有直接的。這個通常看起來沒用,但是如果你不想去改底層的情況下,想實現多執行緒混合非同步分發模型的時候有用 徹底區分真非同步任務和執行緒模擬的非同步任務,然後...