久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

javascript - 為什么newtoy.constructor === Gadget在控制臺的結果是false?

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

問題描述

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

上述例子摘自《面向對象編程指南》一書

問題解答

回答1:

如果代碼沒寫錯的話,那么就是false,因為你已經把Gadget的原型對象給重寫了,而你重寫的原型對象中沒有constructor屬性,可以參考一下《JavaScript高級程序設計》中第六章關于原型的介紹

回答2:

樓上正解,Gadget.prototype 被重寫了。因為原型對象中有個隱式的constructor,指向了構造函數本身。如下:javascript - 為什么newtoy.constructor === Gadget在控制臺的結果是false?

原型拓展,最好寫成這種形式:

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

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

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

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 五峰| 抚宁县| 唐海县| 合川市| 汪清县| 乌审旗| 册亨县| 盐山县| 桑植县| 南雄市| 民权县| 龙岩市| 铁岭县| 卓尼县| 彰化市| 沁阳市| 石柱| 襄垣县| 沙洋县| 吴川市| 昭平县| 长汀县| 水城县| 泸西县| 双鸭山市| 罗城| 米易县| 铁力市| 那曲县| 阳西县| 抚顺市| 蓝田县| 敖汉旗| 金坛市| 吴堡县| 广元市| 博白县| 横峰县| 湘潭市| 商都县| 阿克|