前端面試之原型鏈總結

2021-08-19 23:39:45 字數 2166 閱讀 9081

凡事通過new function () 建立的物件,都是函式物件,其他的都是普通物件。

function person (name,age,job)

}var person1= new person('小花','12','好好學習');

person1.sayname()

console.log(person1.constructor===person)

建構函式都有constructor 的屬性,該屬性是乙個指標,指向person.也就是說,person1.constructor == person。這裡是完全相等的,不論是==還是====。建構函式的例項化物件的屬性指向建構函式本身

### 3.原型物件: 每個函式物件都有prototype 屬性。這個屬性指向的是函式的原型物件,這裡說的是函式物件,才有prototype 而還有一些不是函式物件,是普通的物件,所有的物件都有_proto這個屬性,這個屬性和prototype 一樣指向的是原型物件。 #### person.prototype.constructor == person

function person () {};

person.prototype // person

typeof person.prototype // object

typeof function.prototype //function 函式物件

typeof function.prototype.prototype //undefined

4. proto

建構函式的原型物件的constructor指向建構函式本身 person.prototype.constructor == person; 建構函式的例項化物件的proto屬性指向建構函式的原型物件 person1.proto == person.prototyoe;

建立乙個物件: var obj = {} 它等同於下面這樣: var obj = new object()

obj 是建構函式(object)的乙個例項。所以: obj.constructor === object obj.proto === object.prototype

新物件 obj 是使用 new 操作符後跟乙個建構函式來建立的。建構函式(object)本身就是乙個函式(就是上面說的函式物件),它和上面的建構函式 person 差不多。只不過該函式是出於建立新物件的目的而定義的。 同理,可以建立物件的構造器不僅僅有 object,也可以是 array,date,function等。 所以我們也可以建構函式來建立 array、 date、function

這裡的意思是從js內建物件的角度來說明原型物件的,所有的內建物件都是乙個構造器,而在js裡面,函式是一等公民,意思就是說函式是js的始祖,其他的都是衍生品。寫到這裡就是說普通物件也是建構函式的例項化物件。而上面說的只有函式物件才有prototype ,這裡是沒有的,而是當我們建立出來的例項化物件,有proto 屬性,和是建構函式的例項所以有constructor ,建構函式的原型物件也有。

這裡總結一下: proto是所有物件都有的,只要是物件都有。prototype只有函式有這個屬性。constructor是所有的建構函式生成的例項都有。

person1.proto === person.prototype

person.proto == person.prototype.protype ==function.prototype

person.prototype.proto == object.prototype

object.proto == function.prototype

object.prototype.proto == null

constructor 是物件的建構函式,person1.constructor == person

object.prototype==person.prototype.proto true object.prototype==function.proto false person.prototype == p.prototrue hasownproperty判斷是自己本身的屬性還是繼承的 propertyisenumerable()是用來檢測屬性是否屬於某個物件的,如果檢測到了,返回true,否則返回false. 1.這個屬性必須屬於例項的,並且不屬於原型. 2.這個屬性必須是可列舉的,也就是自定義的屬性,可以通過for..in迴圈出來的. 只要符合上面兩個要求,就會返回true;

前端面試 原型鏈

方式一 1 字面量物件 2 new object宣告乙個物件 預設物件的原型鏈指向object 方式二 顯式的建構函式建立物件 方式三 object.creat方式 prototype和constructor 例項 o1 o11 o2 建構函式 new 操作的函式,就是建構函式 new object...

前端面試 前端面試總結2018 07

2周面試了11家公司吧,具體面試題如下 面試第一周 7.23 7.27 中谷芯厚建 蘇寧vivo外包 電面 杭州通策會 第二週 7.30 8.3 南京軟體谷研究院 烽火科技 邁特望,蘇寧外包 電面 平安科技外包 華泰 外包 一輪 技術面,二輪現場技術面 三隻松鼠 電面 一.中谷芯 二.厚建 angu...

前端面試總結

最近打算換乙個新工作所有總結了一些面試的知識點,希望能幫到大家。廢話不多說直接上內容。1.width calc 100 2px 四則運算 vw viewpoint width,視窗寬度,1vw等於視窗寬度的1 vh viewpoint height,視窗高度,1vh等於視窗高度的1 height 1...