繼承

繼承有什么作用?

  • 得到一個(gè)類的屬性
  • 得到一個(gè)類的方法

有幾種常見(jiàn)創(chuàng)建對(duì)象的方式? 舉例說(shuō)明?

  • 直接賦值
    var obj={};

  • 工廠模式

function createCake(name){
  var obj={
    name:name,
    sayName:function(){
      console.log('我是:'+name)
    }
  }
  return obj;
}
var cake1= createCake('草莓蛋糕')

缺點(diǎn)是無(wú)法得到對(duì)象類型

  • 構(gòu)造函數(shù)模式
function createCake(name){
  this.name=name;
  this.sayName=function(){
    console.log('我是:'+this.name);
  }
}
var cake1= new createCake('草莓蛋糕')
  • 原型方式
function createCake(name){
  this.name=name;
}
createCake.prototype.sayName=function(){
    console.log('我是:'+this.name);
  }
var cake1= new createCake('草莓蛋糕')

下面兩種寫法有什么區(qū)別?

function People(name, sex){
    this.name = name;
    this.sex = sex;
    this.printName = function(){
        console.log(this.name);
    }
}
var p1 = new People('饑人谷', 2)

//方法2
function Person(name, sex){
    this.name = name;
    this.sex = sex;
}

Person.prototype.printName = function(){
    console.log(this.name);
}
var p1 = new Person('若愚', 27);

方法一是構(gòu)造函數(shù)模式,方法二是原型模式侦锯。方法二算是方法一的一種改進(jìn),把共有的屬性放在了原型當(dāng)中骂删,節(jié)省空間。

Object.create 有什么作用?兼容性如何宁玫?如何使用粗恢?

Object.create創(chuàng)建一個(gè)擁有指定原型和若高個(gè)指定屬性的對(duì)象
ES5新特性,需要IE9以上版本

hasOwnProperty有什么作用欧瘪? 如何使用适滓?

可以判斷一個(gè)對(duì)象是否包含自定義屬性而不是原型鏈上的屬性,hasOwnProperty是JS中唯一一個(gè)處理屬性但是不查找原型鏈的函數(shù)恋追。

實(shí)現(xiàn)Object.create的 polyfill,如:(ps: 寫個(gè) 函數(shù)create,實(shí)現(xiàn) Object.create 的功能)

var obj = {a: 1, b:2};
var obj2 = create(obj);
console.log(obj2.a); //1
if (typeof Object.create != 'function'){
  Obj.create = (function(){
    function Temp() {}
    var hasOwn = Object.prototype.hasOwnProperty;
    return function(proto){
      if (typeof proto != 'object'){
        throw TypeError('Object prototype may only be an Object or null');
      }

      Temp.prototype = proto;
      var obj = new Temp();
      Temp.prototype = null;

      if (arguments.length > 1){
        var Properties = Object(arguments[1]);
        for (var prop in Properties){
          if (hasOwn.call(Properties, prop)) {
            obj[prop] = Properties[prop];
          }
        }
      }
      return obj;
    };
  })();
}

如下代碼中call的作用是什么?

function Person(name, sex){
    this.name = name;
    this.sex = sex;
}
function Male(name, sex, age){
    Person.call(this, name, sex);    //這里的 call 有什么作用
    this.age = age;
}

改變this的指向罚屋,把環(huán)境改變到Male的環(huán)境內(nèi)苦囱,實(shí)現(xiàn)繼承。

補(bǔ)全代碼脾猛,實(shí)現(xiàn)繼承

function Person(name, sex){
    // todo ...
}

Person.prototype.getName = function(){
    // todo ...
};    

function Male(name, sex, age){
   //todo ...
}

//todo ...
Male.prototype.getAge = function(){
    //todo ...
};

var ruoyu = new Male('若愚', '男', 27);
ruoyu.printName();
        function inhert(superType,subType){
            var _prototype = Object.create(superType.prototype);
            _prototype.constructor=subType;
            subType.prototype=_prototype;
        }
        function Person(name,sex){
            this.name=name;
            this.sex=sex;
        }
        Person.prototype.getName=function(){
            console.log(this.name);
        }
        function Male(name,sex,age){
            Person.call(name,sex);
            this.age=age;
        }
        inhert(Person,Male);
        Male.prototype.getAge=function(){
            console.log(this.age);
        }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末撕彤,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子猛拴,更是在濱河造成了極大的恐慌羹铅,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件愉昆,死亡現(xiàn)場(chǎng)離奇詭異职员,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)跛溉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門焊切,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人芳室,你說(shuō)我怎么就攤上這事专肪。” “怎么了堪侯?”我有些...
    開封第一講書人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵嚎尤,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我伍宦,道長(zhǎng)芽死,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任雹拄,我火速辦了婚禮收奔,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘滓玖。我一直安慰自己坪哄,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著翩肌,像睡著了一般模暗。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上念祭,一...
    開封第一講書人閱讀 52,268評(píng)論 1 309
  • 那天兑宇,我揣著相機(jī)與錄音,去河邊找鬼粱坤。 笑死隶糕,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的站玄。 我是一名探鬼主播枚驻,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼株旷!你這毒婦竟也來(lái)了再登?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤晾剖,失蹤者是張志新(化名)和其女友劉穎锉矢,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體齿尽,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡沽损,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了循头。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缠俺。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖贷岸,靈堂內(nèi)的尸體忽然破棺而出壹士,到底是詐尸還是另有隱情,我是刑警寧澤偿警,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布躏救,位于F島的核電站,受9級(jí)特大地震影響螟蒸,放射性物質(zhì)發(fā)生泄漏盒使。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一七嫌、第九天 我趴在偏房一處隱蔽的房頂上張望少办。 院中可真熱鬧,春花似錦诵原、人聲如沸英妓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蔓纠。三九已至辑畦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間腿倚,已是汗流浹背纯出。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留敷燎,地道東北人暂筝。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像硬贯,于是被迫代替她去往敵國(guó)和親乖杠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 繼承有什么作用? (難度:3*) 繼承可以使一個(gè)對(duì)象直接使用另一個(gè)對(duì)象的屬性和方法澄成。 有幾種常見(jiàn)創(chuàng)建對(duì)象的方式? ...
    coolheadedY閱讀 528評(píng)論 0 0
  • 問(wèn)題 1.繼承有什么作用? 繼承是指一個(gè)對(duì)象直接使用另一對(duì)象的屬性和方法。 作用:1.當(dāng)js中的兩個(gè)對(duì)象有很多的共...
    GarenWang閱讀 389評(píng)論 0 0
  • 1. apply畏吓、call 墨状、bind有什么作用,什么區(qū)別菲饼? call ,apply的作用:調(diào)用一個(gè)函數(shù)肾砂,傳入函數(shù)...
    Rising_suns閱讀 395評(píng)論 0 0
  • 一、問(wèn)題 1.繼承有什么作用? (難度:***) 繼承的作用宏悦,可以使用原型鏈上的屬性和方法镐确,這樣的方式可以節(jié)省內(nèi)存...
    我是小韓閱讀 257評(píng)論 1 0
  • 大學(xué)時(shí),一老師課后閑談饼煞,哈姆雷特是性格的悲勗春;諸葛亮是時(shí)代的悲勛┣啤息堂;而喬峰是命運(yùn)的悲劇。喬峰生為契丹人块促,卻長(zhǎng)于漢地荣堰。...
    片片星閱讀 343評(píng)論 0 1