javascript prototipleri ve kalıtım [kopya]

Sep 09 2020

Sorum şu: Nesne, prototip zincirinin sonuncusudur, tüm nesneler ondan özellikleri ve yöntemleri miras alır, yöntemleri Function.prototype'dan nasıl miras alır, neden Object.__proto__ === Function.prototype// doğru, neden Object.__proto__boş değil.

Yanıtlar

ScottMarcus Sep 09 2020 at 20:27

ObjectJavaScript'teki temel öğenin somutlaştırılması için bir yolu olmalıdır, bu nedenle aşağıdaki prototypegibi satırlara yardımcı olacak bir nesne gerektirir :

let myObj = new Object();

Ve bu yüzden Object.__proto__değil null.

FunctionNesne bir kurucu ile nesne örnekleme kolaylaştırır ve kullanıldığında bu şekilde, bir "yapıcı işlevi" olarak bilinen bir nesne özel bir türüdür. Dolayısıyla, Objectbir Functionnesneden miras almak mantıklıdır, böylece nesne örnekleri oluşturulabilir.

Geuis Sep 09 2020 at 20:28

İşlev aynı zamanda bir nesnedir. Dolayısıyla, Object'ten de miras alır.

Ama kafan karışmasın Object.__proto__. Bu, tarayıcının eklediği bir şeydir ve aslında dilin bir parçası değildir. Bu yüzden ona güvenmeyin veya kullanmayın.

Esasen, Function.prototypeöyle Object.__proto__.