一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

淺談JS中對象、函數(shù)的

 霞客書齋 2017-08-24
JS中每個對象都會有__proto__屬性,默認為Object,例如:
var a={};//這里對象a的__proto__屬性就是Object
  • 1
  • 1

proto屬性的作用主要是用來確定當前對象的繼承者,在當前對象找不到指定的屬性和對象時,會去proto屬性指定的對象中尋找,之后依次類推直到找完所有繼承或找到要找的屬性為止

js的函數(shù)會有一個默認的prototype對象,這個prototype對象用來指定函數(shù)的繼承關系,prototype對象默認有兩個屬性,一個是constructor,另一個就是proto屬性,默認的prototype對象在被改變之前就像是這個函數(shù)用來表示自己的一個對象,其中proto屬性和普通對象的proto屬性一樣用來對應繼承關系,而constructor屬性則代表了函數(shù)本身,舉個例子:

//console下的結果
function a(){alert(1)}
a.prototype.constructor;//function a(){alert(1)}

var b={x:1}
a.prototype=b;//設置繼承

var c=new a();

c.x//1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

基本來說就是a繼承了對象b中的屬性或者方法。

最后說一下new的原理,用上面代碼中提到的new來舉例,new的過程是先生成一個空對象給c,然后把c的proto屬性指向a的prototype對象,最后執(zhí)行a.call(c)來構造對象c??偟膩碚f由于對象c的繼承指向了a的prototype對象也就是b,所以c能拿到b中的x屬性,證明a和b的繼承關系。

這里特別要說明一下,由于c的proto屬性指向了a的prototype,所以c的constructor也變?yōu)閍的prototype的constructor,這樣會產(chǎn)生一些問題,因為原本可以向這樣使用c()來實現(xiàn)a的方法,但現(xiàn)在由于a的prototype是b,所以a的constructor會變?yōu)閎的constructor,這樣調(diào)用就不會調(diào)用a方法而是調(diào)用b的constructor方法。所以必須執(zhí)行一下代碼來糾正這個問題。

a.prototype.constructor=a;//將a的原型的constructor屬性改回原來的
或者可以這樣寫 
c.constructor=a;//c在找不到constructor屬性的時候會去proto找
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

c()就會依然調(diào)用原來的a方法,繼承也不會受影響。當然,如果你就是要用prototype的constructor方法那就不需要修改了~~

差不多就是這些了,都是自己的一些理解,本人是做后端的,對前端可能理解的不好,希望前端高手指出問題,一起進步~~

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    色婷婷在线视频免费播放| 99久久人妻精品免费一区| 国产高清视频一区不卡| 老熟女露脸一二三四区| 91在线播放在线播放观看| 99一级特黄色性生活片| 视频一区二区三区自拍偷| 我的性感妹妹在线观看| 欧美一级日韩中文字幕| 成人三级视频在线观看不卡| 粉嫩国产美女国产av| 国产精品熟女在线视频| 中文字幕一区二区三区中文| 久久黄片免费播放大全| 夜色福利久久精品福利| 日本女人亚洲国产性高潮视频| 成人国产激情福利久久| 九九热在线免费在线观看| 人人妻在人人看人人澡| 一区二区免费视频中文乱码国产| 亚洲人妻av中文字幕| 激情内射日本一区二区三区| 九九热最新视频免费观看| 日本一区二区三区久久娇喘| 亚洲一区二区三区四区| 激情五月天深爱丁香婷婷| 欧美日韩在线观看自拍| 好骚国产99在线中文| 欧美成人精品一区二区久久| 久久国产亚洲精品赲碰热| 好吊色免费在线观看视频| 国产成人午夜av一区二区| 翘臀少妇成人一区二区| 久热人妻中文字幕一区二区| 精品精品国产欧美在线| 午夜福利大片亚洲一区| 国产丝袜极品黑色高跟鞋| 久久99精品日韩人妻| 日本av一区二区不卡| 欧美久久一区二区精品| 欧美性欧美一区二区三区|