導航:首頁 > 編程語言 > javascript函數是對象

javascript函數是對象

發布時間:2025-04-06 17:30:07

A. javaScript 中的 prototype

本文介紹 JavaScript 中的 prototype。對象與類的實例等價。
[[Prototype]] 與 prototype
[[Prototype]] 與 prototype 有別:[[Prototype]] 是內部屬性,不能通過對象.屬性獲取;通過對象.__proto__ 可獲取。prototype 是一般屬性,可直接通過對象.prototype 獲取。
每個對象具備 [[Prototype]] 屬性。數組與函數通過 new 關鍵字創建,本質是對象,也擁有 [[Prototype]]。
使用 typeof 檢測類標識符,返回 'function'。類是函數,函數是對象,因此類也是對象。函數與類既有 [[Prototype]] 屬性,也有 prototype 屬性。例外如 Proxy,無 prototype。原型鏈 prototype chain
最簡單原型鏈:toString、valueOf 在 Object.prototype 上定義。
復雜原型鏈:Person 是類,即構造函數,是 Function 的實例。另一條原型鏈:Function 是類,Object、Array 等是 Function 的實例。
繼承原型鏈:Object、Array、Function、String、Date 等類,皆有 [[Prototype]] 和 prototype。作為構造函數,它們與 Person 類相同,都是 Function 的實例。call、apply、bind 等方法定義在 Function.prototype 上。
Object、Array 等作為對象,可定義方法。靜態方法如 Object.defineProperty()、Object.assign()、Array.from() 定義在 Object、Array 上。
數組原型鏈:數組的 push、shift、indexOf 等方法在 Array.prototype 上定義。數組與數組對象都能使用 Array.prototype 方法,以及 Object.prototype 方法,但除此之外無其他可用方法。
數組與 Function、Object 的關系:數組使用自身與 Function、Object 的方法,無需額外引入。

B. javascript中什麼是 對象 什麼是 對象 什麼是構造函數 什麼是方法呀 好糾結 不懂

這些概念要慢慢理解,不是一下子就轉過來的。
C語言是面向過程的,javascript是基於對象的,兩者有根本的差別,雖然語法很像

先講下面向對象跟面向過程(javascript不是面向對象,是基於對象,但跟面向對象概念差不多的)

面向過程就是函數調用函數這樣子完成一個功能。
你最熟悉的C語言,只要一寫程序,就有一個main函數,其它函數都是輔助的,只有在main里調用到才會運行

面向對象就是你要完成一個功能,就要先構造一個對象,再用這個對象的方法(就是函數)去完成功能
比如瀏覽器里頂級對象就是window。js里常用的那些方法如alert,setTimeout,confirm等都是window的方法,你可以用window.alert調用,也可以直接調用,直接調用的時候它還是調用到window.alert上面的

1、什麼是對象
對象就是東西,js中最基本的東西是內置的object
對象可以有方法,可以有屬性
2、構造函數 是創建對象時初始化對象 的函數,就好比對象工廠,用於規定對象的基本屬性和方法。
3、屬性和方法 屬性就是對象的特點,比如一張桌子有四條腿,一個面。
可以這樣聲明 var table={} //定義對象時{}和new Object()一樣
table.legsNum=4 //桌子有四條腿
方法就是對象的功能
桌子可以用來吃飯
table.forEat=function(){alert("我在吃飯")}

C. 請教解釋一個關於javascript中this的函數。

「通俗易懂些」說說我的理解。
js函數是一種對象。
new關鍵字可以將一個函數對象實例化為一個新的對象。
被實例化後,源對象內的this將指向這個新的對象,否則如沒有用new實例化則this指向默認的頂層對象window。
如Test()和new Test()兩者的區別:前者僅僅執行一次,this指向window,後者不僅執行一次而且返回一個新的對象,實例化進行時其this指向一個空的對象(在內存中),還沒給在個this所指對象添加aa屬性時alert(this.aa)是undefined。this.aa = 22; 給了這個對象增加了aa屬性,所以第二個alert(this.aa); 彈出22;
函數內var aa=33; 這個aa!=this.aa,而且aa!=window.aa, 所以alert(aa) 彈出33;
最後alert(new Test().aa); (new Test())這個匿名對象已經有了aa屬性,值為22,所以最後彈出22

閱讀全文

與javascript函數是對象相關的資料

熱點內容
歌SR80有幾個版本 瀏覽:447
x4系統怎麼設置四軸編程 瀏覽:836
word文檔課程表文件 瀏覽:395
文件導入別的系統 瀏覽:589
超大文件appios 瀏覽:875
目前16位程序太多 瀏覽:733
linux系統文件更新 瀏覽:458
wowexe文件在哪裡 瀏覽:133
cad的db源文件如何使用 瀏覽:324
手機qq怎麼創建群提醒 瀏覽:118
struts2有幾個xml文件 瀏覽:238
vb編程怎麼倒過來三角形 瀏覽:405
cad2007每次打開都會有acad文件 瀏覽:816
手機qq密碼保存在哪勾選 瀏覽:24
androidapk密碼框 瀏覽:984
win10怎樣不顯示賬戶名字 瀏覽:322
短視頻馬桶app哪個好 瀏覽:908
dsl文件 瀏覽:121
osx1011修改系統文件 瀏覽:457
微信優酷無法播放視頻 瀏覽:945

友情鏈接