日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

原型prototype

發布時間:2024/3/26 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 原型prototype 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

????????今天給大家淺淺的總結一下學到的prototype與__proto__;后面的問題總結是在B站看了一個學習視頻,照著老師總結下來的,眼熟的友友們請直接拿走不謝~~

????????prototype 概念:每一個構造函數天生自帶一個屬性為?prototype 對象,是一個對象數據類型,里面可以存放對應的數據 稱為顯示原型?且唯一

????????一般把方法放在原型里,屬性放在構造函數里

????????當自定義構造函數書寫完畢后,就會有 prototype 產生

????????__proto__ 概念:每一個對象天生自帶一個__proto__屬性,也是一個對象空間,指向對象所屬構造函數的prototype,稱為隱式原型

function Person() {Person.prototype.a = 100;Person.prototype.say = function(){console.log("hello");} } ? var p1 = new Person(); ? //person找不到a,則會去構造函數的prototype里找 console.log(p1.a); //100 p1.say(); // hello ? console.log(Person.prototype); //判斷一個對象是否指向了該構造函數的原型對象 console.log(Person.prototype.isPrototypeOf(p1));// true ? //創建的對象的自帶屬性__proto__ 指向構造函數的 prototype對象 console.log(p1.__proto__); ? //指向的意思就是說是同一個東西 console.log(p1.__proto__ == Person.prototype); //true console.log(p1.__proto__ === Person.prototype); //true

總結

  • 實例對象的__proto__是指向對應構造函數的prototype

  • 在實際使用中,一般不會使用?__proto__,而是通過?__proto__訪問對應的prototype

問題1:實例對象的?__proto__?指向誰?

  => 指向所屬構造函數的 prototype

  => p1 所屬的構造函數是 Person

  => p1.__proto__?指向 Person.prototype

問題2:(構造函數)Person.prototype 的?__proto__?指向誰?

  => Person.prototype 是一個對象數據類型( Object )

  => 在 JS 內所有的 object 數據類型都是屬于 Object 這個內置構造函數的

  => 所以 Person.prototype 屬于 Object 這個內置構造函數

  => 所以 Person.prototype 的?__proto__?指向 Object.prototype

問題3:(構造函數)Person 的?__proto__?指向誰?

  => Person 是一個函數,函數本身也是一個對象,所以也有?__proto__

  => 如果Person 有父類,則指向父類的原型prototype

  => 在 JS 內,所有函數都是屬于內置構造函數 Function 的實例

  => 所以 Person.__proto__?指向 Function.prototype

問題4:Object.prototype 的?__proto__?指向誰?

  => Object.prototype 是一個對象數據類型,只要是對象,都是屬于 Object 這個內置構造函數的

  =>?注意:Object.prototype 在 JS 內叫做頂級原型,不在有?__proto`__`,指向null

問題5:Object 的?__proto__?指向誰?

  => Object 是一個內置構造函數,也是一個函數,也是一個對象

  => 在 JS 內,所有的函數都是屬于內置構造函數 Function 的實例

  => Object 也是 Function 的實例

  => 所以Object.__proto__?指向 Function.prototype

問題6:Function.prototype 的?__proto__?指向誰?

  => Function.prototype 也是一個對象數據類型

  => 只要是對象數據類型都是 Object 的實例

  => 所以 Function.prototype 的?__proto__?指向 Object.prototype

問題7:Function 的?__proto__?指向誰?

  => Function 也是一個內置構造函數,也是一個函數

  => 在 JS 內,所有的函數都是屬于內置構造函數 Function 的實例

  => Function 是 自己的構造函數,自己的實例對象

  => 所以 Function 所屬的構造函數時Function

  => 所以 Function.__proto__?指向 Function.prototype

總結

以上是生活随笔為你收集整理的原型prototype的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。