国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

javascript - 為什么newtoy.constructor === Gadget在控制臺(tái)的結(jié)果是false?

瀏覽:160日期:2023-05-18 13:44:53

問(wèn)題描述

function Gadget(name,color){ this.name=name; this.color=color; this.whatAreYou=function(){return ’I am a ’ + this.color + ’ ’ + this.name; };}Gadget.prototype={ price:100, rating:3, getInfo:function(){return ’Rating: ’ + this.rating + ’, price: ’ + this.price; }};var newtoy=new Gadget(’webcam’,’black’);new.rating;//3newtoy.constructor === Gadget;//true

上述例子摘自《面向?qū)ο缶幊讨改稀芬粫?shū)

問(wèn)題解答

回答1:

如果代碼沒(méi)寫(xiě)錯(cuò)的話(huà),那么就是false,因?yàn)槟阋呀?jīng)把Gadget的原型對(duì)象給重寫(xiě)了,而你重寫(xiě)的原型對(duì)象中沒(méi)有constructor屬性,可以參考一下《JavaScript高級(jí)程序設(shè)計(jì)》中第六章關(guān)于原型的介紹

回答2:

樓上正解,Gadget.prototype 被重寫(xiě)了。因?yàn)樵蛯?duì)象中有個(gè)隱式的constructor,指向了構(gòu)造函數(shù)本身。如下:javascript - 為什么newtoy.constructor === Gadget在控制臺(tái)的結(jié)果是false?

原型拓展,最好寫(xiě)成這種形式:

Test.prototype.newFn = function() { ...}

或者使用Object.assign()合并對(duì)象:

Test.prototype = Object.assign(Test.prototype, { newAttr: ’’, newFn: function() {... }})

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 台安县| 宁陵县| 平武县| 永登县| 曲阳县| 左云县| 岗巴县| 从江县| 和林格尔县| 宝清县| 崇信县| 钟山县| 香格里拉县| 新绛县| 玛多县| 偃师市| 迭部县| 靖州| 荣昌县| 法库县| 清水河县| 长兴县| 融水| 礼泉县| 诸城市| 佛学| 乐清市| 东山县| 内江市| 阜南县| 永平县| 桑日县| 安陆市| 赤水市| 古丈县| 岫岩| 平南县| 五常市| 桐梓县| 苏州市| 盘锦市|