成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

JavaScript反射機制與繼承:概念

阿羅 / 677人閱讀

摘要:反射反射機制是指程序可以訪問檢測和修改它本身狀態(tài)或行為的一種能力??梢岳梅瓷錂C制繼承。中沒有繼承機制,但是可以對某一個類的成員通過反射機制逐一復(fù)制,然后再修改需要覆蓋的成員,就可以達到繼承的效果。

反射

反射機制是指程序可以訪問、檢測和修改它本身狀態(tài)或行為的一種能力。對于JavaScript,簡單來說,就是對類的成員進行修改等操作。

js可以通過for(...in...)來實現(xiàn)反射。

繼承

JavaScript中沒有專門的機制來實現(xiàn)類的繼承,但可以通過復(fù)制一個類的prototype到另外一個類來實現(xiàn)繼承。

function Helloclass()
{
     //構(gòu)造函數(shù)
}
function Hellosubclass()
{
     //構(gòu)造函數(shù)
}

Hellosubclass.prototype = Helloclass.prototype;
Hellosubclass.prototype.Propertys = "name";
Hellosubclass.prototype.Methods = function()
{
     //方法示例代碼
}
var obj = new Hellosubclass();

以上并非嚴格的繼承,兩個類是同一prototype的引用,HelloclassHellosubclass共享同一個prototype,重寫一個類的成員或方法會影響另一個。

可以利用反射機制繼承。利用for(...in...)語句枚舉出所有基類prototype成員,并將其賦值給prototype對象。進一步,可以為每個類添加一個共有的方法用來實現(xiàn)類的繼承:

function.prototype.inherit=function(baseClass)
{
     for(var p in baseClass.prototype)
     {
          this.prototype[p] = baseClass.prototype[p];
     }
}

可以看出,所謂的反射機制,從簡單方面來講,就是對類中成員進行枚舉、修改等操作的能力。如果存在一種機制,在不知道某一個類中到底有什么函數(shù),或者成員變量的情況下就可以對其操作(例如,js可以對類成員進行枚舉),這種機制就可以成為反射。
js中沒有繼承機制,但是可以對某一個類的成員通過反射機制“逐一復(fù)制”,然后再修改需要“覆蓋”的成員,就可以達到“繼承”的效果。這也是反射機制的一個應(yīng)用。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/87564.html

相關(guān)文章

  • PHP核心技術(shù)最佳實踐(第一章 面向?qū)ο笏枷氲暮诵?em>概念)

    摘要:現(xiàn)代的面向?qū)ο蟮乃枷氩粡娬{(diào)為真實世界建模變得更加理性化一些,把目標放在解耦上。各種語言中的多態(tài)多態(tài)確切的含義是同一類的對象收到相同消息時,會得到不同的結(jié)果。小結(jié)本章主要介紹面向?qū)ο笏枷氲某绦虻慕M成元素類和對象。 第一章 面向?qū)ο笏枷氲暮诵母拍?showImg(https://segmentfault.com/img/bVNfjM?w=673&h=334); showImg(https:...

    dreamGong 評論0 收藏0
  • 最最最常見的Java面試題總結(jié)——第二周

    摘要:與都繼承自類,在中也是使用字符數(shù)組保存字符串,,這兩種對象都是可變的。采用字節(jié)碼的好處語言通過字節(jié)碼的方式,在一定程度上解決了傳統(tǒng)解釋型語言執(zhí)行效率低的問題,同時又保留了解釋型語言可移植的特點。 String和StringBuffer、StringBuilder的區(qū)別是什么?String為什么是不可變的? String和StringBuffer、StringBuilder的區(qū)別 可變性...

    yearsj 評論0 收藏0
  • Java開發(fā)

    摘要:大多數(shù)待遇豐厚的開發(fā)職位都要求開發(fā)者精通多線程技術(shù)并且有豐富的程序開發(fā)調(diào)試優(yōu)化經(jīng)驗,所以線程相關(guān)的問題在面試中經(jīng)常會被提到。將對象編碼為字節(jié)流稱之為序列化,反之將字節(jié)流重建成對象稱之為反序列化。 JVM 內(nèi)存溢出實例 - 實戰(zhàn) JVM(二) 介紹 JVM 內(nèi)存溢出產(chǎn)生情況分析 Java - 注解詳解 詳細介紹 Java 注解的使用,有利于學(xué)習(xí)編譯時注解 Java 程序員快速上手 Kot...

    LuDongWei 評論0 收藏0
  • 夯實基礎(chǔ)系列一:Java 基礎(chǔ)總結(jié)

    摘要:可實現(xiàn)單例模式代碼塊初始化靜態(tài)變量,只被執(zhí)行一次內(nèi)部類不能與外部類重名,只能訪問外部類靜態(tài)數(shù)據(jù)包括私有多分支選擇整型或字符類型變量或整數(shù)表達式開始支持。 前言 大學(xué)期間接觸 Java 的時間也不短了,不論學(xué)習(xí)還是實習(xí),都讓我發(fā)覺基礎(chǔ)的重要性。互聯(lián)網(wǎng)發(fā)展太快了,各種框架各種技術(shù)更新迭代的速度非???,可能你剛好掌握了一門技術(shù)的應(yīng)用,它卻已經(jīng)走在淘汰的邊緣了。 而學(xué)習(xí)新技術(shù)總要付出一定的時間...

    greatwhole 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<