第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

javascript Object 是構(gòu)造函數(shù)還是對象

javascript Object 是構(gòu)造函數(shù)還是對象

慕容3067478 2019-03-18 17:19:56
本人在學習原型鏈的時候遇到一些困惑如下:在一些博客(比如阮一峰的博客中), 是這么說的:JavaScript原生提供Object對象, 所有其他對象都繼承自Object對象,即那些對象都是Object的實例這里我就感到困惑了, 根據(jù)我的理解,Object難道不應該是一個構(gòu)造函數(shù)么? 因為比如說任何一個實例對象都有.valueOf這個方法, 實際上是引用的Object.prototype這個原型對象里面的方法而且當我在終端中輸入typeof(Object)返回的是"function", 說明Object應該是一個構(gòu)造函數(shù), 真正的對象應該是Object.prototype吧但是似乎又不完全是這樣, Object有自己的靜態(tài)方法, 就是直接定義在自身的方法, 比如Object.keys(), 所以說構(gòu)造函數(shù)也是對象? 也是有可以有自己的方法和屬性?另外又做了一個測試:var F = function() {} F.__proto__ === Function.prototype // true對于這個問題到底該如何理解, 本人剛剛學習javascript, 學習了這些概念以后開始有點糊涂, 希望各位前輩能給出一個清晰的解答, 謝謝!
查看完整描述

4 回答

?
阿晨1998

TA貢獻2037條經(jīng)驗 獲得超6個贊

然而“函數(shù)”也是Object

function rua() {}
    console.log(rua instanceof Object)// 
true

甚至“類”也是Object

class Rua {}console.log(Rua instanceof Object)// true

在js里,一個類同時也是一個對象

在js里,萬物皆Object(除了基本類型),仔細想想,這并沒有任何沖突,這也使得js非常的靈活。

另外為什么你會覺得一個類會(只)是一個“函數(shù)”?構(gòu)造函數(shù)一般是用來初始化類成員等動態(tài)數(shù)據(jù)的,“類”應該還包含了靜態(tài)方法和實例方法,這些“方法”不屬于“構(gòu)造函數(shù)”的一部分,當然如果你使用動態(tài)聲明實例方法的寫法的話,那這些“方法”就確實屬于“構(gòu)造函數(shù)”的一部分了。

為了讓你覺得Object也是對象這件事情并不奇怪,請跟著我的思路走一遍

  1. 在js里,能隨意添加屬性(property)的都是對象

  2. 使用class保留字聲明的類,你可以隨意添加屬性(property)(不信試試)

  3. 你自己聲明的函數(shù),可以隨意添加屬性(property)(不信試試)

  4. 你甚至可以向Object中隨意添加屬性(property)(不信試試)

這樣能明白些了嗎?


查看完整回答
反對 回復 2019-03-31
?
慕妹3146593

TA貢獻1820條經(jīng)驗 獲得超9個贊

函數(shù)本身就是對象,有關(guān)原型,原型鏈的可以參考prototype


查看完整回答
反對 回復 2019-03-31
?
一只名叫tom的貓

TA貢獻1906條經(jīng)驗 獲得超3個贊

Js里什么都能當成對象,Object自然能當成構(gòu)造函數(shù),但他也是對象,函數(shù)本身就是對象


查看完整回答
反對 回復 2019-03-31
?
慕沐林林

TA貢獻2016條經(jīng)驗 獲得超9個贊

JavaScript 中的對象類型和其他數(shù)據(jù)類型有著本質(zhì)區(qū)別,萬物皆對象是有道理的。


查看完整回答
反對 回復 2019-03-31
  • 4 回答
  • 0 關(guān)注
  • 1238 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號