成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

[面試專(zhuān)題]js之面向?qū)ο?OOP)

andycall / 3524人閱讀

摘要:之面向?qū)ο髮?duì)象類(lèi)型數(shù)據(jù)類(lèi)型分六類(lèi)簡(jiǎn)單類(lèi)型五種復(fù)雜類(lèi)型其中也屬于基本類(lèi)型。

js之面向?qū)ο?OOP) js對(duì)象類(lèi)型(Object)

js數(shù)據(jù)類(lèi)型分六類(lèi),簡(jiǎn)單類(lèi)型:Undefined,Null,Bollean,Number,String五種,復(fù)雜類(lèi)型:Object.
其中Undefined、Null、Boolean、Number也屬于基本類(lèi)型。Object、Array和Function則屬于引用類(lèi)型

其中Null類(lèi)型表示一個(gè)空對(duì)象引用,typeof (null類(lèi)型)會(huì)返回object

簡(jiǎn)單類(lèi)型和復(fù)雜類(lèi)型之間的關(guān)系:js中一切皆對(duì)象,所以以上簡(jiǎn)單類(lèi)型也是對(duì)象,但是創(chuàng)建方法不同,利用typeof 檢測(cè)類(lèi)型時(shí)結(jié)果也不同.(這個(gè)typeof真是沒(méi)啥用).例如下例中兩個(gè),但是本質(zhì)上都是對(duì)象.

    var name = String("jwy");
    alert(typeof name);//"object"
    var author = "Tom";
    alert(typeof author);//"string"
盤(pán)點(diǎn)JS面向?qū)ο笾^承 原型鏈

即利用原型鏈讓一個(gè)引用類(lèi)型繼承另一個(gè)應(yīng)用類(lèi)型的方法和屬性.
缺點(diǎn):

重寫(xiě)了原有的prototype,constructor指向了超類(lèi).

prototype是超類(lèi)的實(shí)例,因此超類(lèi)屬性會(huì)被所有子類(lèi)實(shí)例共享.

創(chuàng)建子類(lèi)實(shí)例時(shí),不能向超類(lèi)構(gòu)造函數(shù)傳參.

function Subtype(){
    //構(gòu)造函數(shù)
}
Subtype.prototype = new Supertype();
借用構(gòu)造函數(shù)(經(jīng)典繼承)

即在子類(lèi)構(gòu)造函數(shù)中調(diào)用超類(lèi)構(gòu)造函數(shù),通過(guò)call或者apply來(lái)綁定上下文對(duì)象.

function Subtype(){
 Supertype.call(this);//也可傳參
}

缺點(diǎn):

和構(gòu)造函數(shù)模式一樣,方法在構(gòu)造函數(shù)中定義,因此就無(wú)法實(shí)現(xiàn)函數(shù)復(fù)用(作為方法)

在超類(lèi)型的原型中定義的方法,對(duì)子類(lèi)型而言也是不可見(jiàn)的

組合繼承(偽經(jīng)典繼承)

即原型鏈+經(jīng)典繼承,利用原型鏈繼承原型屬性和方法,利用借用構(gòu)造函數(shù)繼承實(shí)例屬性

function SuperType (name) {
     this.name = name;
     this.color = ["red"];
}
SuperType.prototype.sayName = function () {
     console.log(this.name) 
}
function SubType (name,age) {
     SuperType.call(this,name) 
     this.age = age;    
}
SubType.prototype = new SuperType();
SubType.constructor = SubType;
SubType.prototype.sayAge = function () {
     console.log(this.age) 
}
var subInstance = new SuperType("zchang",11);
var subInstance1 = new SuperType("zc",18);
寄生式繼承

即創(chuàng)建一個(gè)僅用于封裝繼承過(guò)程的函數(shù),該函數(shù)在內(nèi)部以某種方式來(lái)增強(qiáng)對(duì)象,最后返回該對(duì)象.

function createAnother (origin) {
     var clone = objects(origin);//某個(gè)函數(shù)創(chuàng)建新對(duì)象
     clone.sayHi = function () {
          console.log("hi") 
     }
     return clone;
}
組合寄生式繼承
function SuperType(name) {
    this.name = name;
    this.color = ["red"];
}
SuperType.prototype.sayName = function() {
    console.log(this.name)
}

function SubType(name, age) {
    SuperType.call(this, name)
    this.age = age;
}
// SubType.prototype = new SuperType();
function inheritPrototype(subtype, supertype) {
    var prototype = object(supertype);
    prototype.constructor = subtype;
    subtype.prototype = prototy
}
inheritPrototype(SubType, SuperType);
SubType.prototype.constructor = SubType;
SubType.prototype.sayAge = function() {
    console.log(this.age)
}
var subInstance = new SuperType("zchang", 11);
var subInstance1 = new SuperType("zc", 18);

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/81866.html

相關(guān)文章

  • 【譯】每個(gè)JavaScript 開(kāi)發(fā)者應(yīng)該了解的10個(gè)面試

    摘要:避免脆弱的基類(lèi)問(wèn)題。紅牌警告沒(méi)有提到上述任何問(wèn)題。單向數(shù)據(jù)流意味著模型是單一的事實(shí)來(lái)源。單向數(shù)據(jù)流是確定性的,而雙向綁定可能導(dǎo)致更難以遵循和理解的副作用。原文地址 1. 你能說(shuō)出兩種對(duì) JavaScript 應(yīng)用開(kāi)發(fā)者而言的編程范式嗎? 希望聽(tīng)到: 2. 什么是函數(shù)編程? 希望聽(tīng)到: 3. 類(lèi)繼承和原型繼承的不同? 希望聽(tīng)到 4. 函數(shù)式編程和面向?qū)ο缶幊痰膬?yōu)缺點(diǎn)? ...

    mykurisu 評(píng)論0 收藏0
  • PHP面試總結(jié)

    摘要:而在面試過(guò)程中,也是經(jīng)常會(huì)遇到的,所以,無(wú)論是面試準(zhǔn)備還是日常開(kāi)發(fā),我們都應(yīng)該關(guān)注這方面的東西。二分法的基本做法是確定要查找的區(qū)間。區(qū)間內(nèi)選取二分點(diǎn)。根據(jù)二分點(diǎn)的值,綜合左右區(qū)間情況以及求解的目的,舍去一半無(wú)用的區(qū)間。 showImg(https://images.pexels.com/photos/935977/pexels-photo-935977.jpeg); 前言 面試是你進(jìn)入...

    alin 評(píng)論0 收藏0
  • [面試專(zhuān)題]一線(xiàn)互聯(lián)網(wǎng)大廠(chǎng)面試總結(jié)

    摘要:道阻且長(zhǎng)啊前端面試總結(jié)前端面試筆試面試騰訊一面瀏覽器工作原理瀏覽器的主要組件包括用戶(hù)界面包括地址欄后退前進(jìn)按鈕書(shū)簽?zāi)夸洖g覽器引擎用來(lái)查詢(xún)及操作渲染引擎的接口渲染引擎渲染界面和是基于兩種渲染引擎構(gòu)建的,使用自主研發(fā)的渲染引擎,和都使用網(wǎng)絡(luò)用來(lái) 道阻且長(zhǎng)啊TAT(前端面試總結(jié)) 前端 面試 筆試 面試 騰訊一面 1.瀏覽器工作原理 瀏覽器的主要組件包括: 用戶(hù)界面- 包括地址欄、后退/前...

    lemanli 評(píng)論0 收藏0
  • [面試專(zhuān)題]一線(xiàn)互聯(lián)網(wǎng)大廠(chǎng)面試總結(jié)

    摘要:道阻且長(zhǎng)啊前端面試總結(jié)前端面試筆試面試騰訊一面瀏覽器工作原理瀏覽器的主要組件包括用戶(hù)界面包括地址欄后退前進(jìn)按鈕書(shū)簽?zāi)夸洖g覽器引擎用來(lái)查詢(xún)及操作渲染引擎的接口渲染引擎渲染界面和是基于兩種渲染引擎構(gòu)建的,使用自主研發(fā)的渲染引擎,和都使用網(wǎng)絡(luò)用來(lái) 道阻且長(zhǎng)啊TAT(前端面試總結(jié)) 前端 面試 筆試 面試 騰訊一面 1.瀏覽器工作原理 瀏覽器的主要組件包括: 用戶(hù)界面- 包括地址欄、后退/前...

    xfee 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<