javascript prototipleri ve kalıtım [kopya]
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
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.
İş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__.