js原型和原型链的概念

JS原型:构造函数(类)的实例都具有一个prototype属性,这个属性是一个指针,指向构造函数的原型对象,当调用构造函数创建一个新实例时,每个实例都会继承构造函数原型上的属性和方法。
JS原型链:JS采用原型链的模式实现继承,每个对象都有一个指向父对象的指针,当查找对象的属性时,会从当前对象的原型开始沿着指针向上查找,直到找到一个名称匹配的属性或者到达原型链的最顶端,Object.prototype为空,则停止查找。


  • js鍘熷瀷鍜屽師鍨嬮摼鐨勬蹇
    绛旓細JS鍘熷瀷閾撅細JS閲囩敤鍘熷瀷閾剧殑妯″紡瀹炵幇缁ф壙锛屾瘡涓璞¢兘鏈変竴涓寚鍚戠埗瀵硅薄鐨勬寚閽堬紝褰撴煡鎵惧璞$殑灞炴ф椂锛屼細浠庡綋鍓嶅璞$殑鍘熷瀷寮濮嬫部鐫鎸囬拡鍚戜笂鏌ユ壘锛岀洿鍒版壘鍒颁竴涓悕绉板尮閰嶇殑灞炴ф垨鑰呭埌杈惧師鍨嬮摼鐨勬渶椤剁锛孫bject.prototype涓虹┖锛屽垯鍋滄鏌ユ壘銆
  • js鍘熷瀷鍜屽師鍨嬮摼鐨鐞嗚В鏄粈涔?
    绛旓細璁鍘熷瀷鍜屽師鍨嬮摼锛屽鏋滄槸璁插畾涔夛紝閭e緢鏄櫐娑╅毦鎳傦紝浠婂ぉ鎴戜滑灏遍氫織鏄撴噦鐨勮璇鍘熷瀷涓庡師鍨嬮摼銆傝繕闇瑕佸熷姪闃佸笀鐨勨淛avascript缁ф壙鏈哄埗鐨勮璁℃濇兂鈥濄1锛屾瘮濡傛垜浠繕瑕侀拡瀵瑰鐢熺粺璁℃瘡涓汉鐨勬诲垎鏄灏戯紝鎴戜滑鏀归犳瀯閫犲嚱鏁癙erson锛屾瀯閫犲嚱鏁颁笂鏈変釜 prototype灞炴э紝杩欎釜灞炴у氨鏄繖涓瀯閫犲嚱鏁扮殑鍘熷瀷锛堟樉寮忓師鍨嬶級锛岃繖涓師鍨...
  • JS鍘熷瀷鍜屽師鍨嬮摼鏄浣曚娇鐢ㄧ殑?
    绛旓細JavaScript涓殑鍘熷瀷鍜屽師鍨嬮摼鏄潰鍚戝璞$紪绋嬩腑鐨勪竴涓噸瑕佹蹇銆傛瘡涓嚱鏁伴兘鏈変竴涓猵rototype灞炴э紝杩欎釜灞炴ф槸涓涓寚閽堬紝鎸囧悜涓涓璞★紝鑰岃繖涓璞$殑鐢ㄩ旀槸鍖呭惈鍙互鐢辩壒瀹氱被鍨嬬殑鎵鏈夊疄渚嬪叡浜殑灞炴у拰鏂规硶銆傚綋鎴戜滑璇曞浘璁块棶涓涓璞$殑灞炴ф椂锛屽畠涓嶄粎浠呭湪璇ュ璞′笂鎼滃锛岃繕浼氭悳瀵昏瀵硅薄鐨勫師鍨嬶紝浠ュ強鍘熷瀷鐨勫師鍨嬶紝渚濇灞...
  • 鍘熷瀷璺鍘熷瀷閾鍖哄埆鏄粈涔?鏈夊ぇ绁炲彲浠ヨВ閲婁竴涓嬪悧?璇蜂笉瑕佺櫨搴﹀鍒剁矘璐磋繃鏉...
    绛旓細鍦↗avaScript涓,涓鍏辨湁涓ょ绫诲瀷鐨勫,鍘熷鍊煎拰瀵硅薄鍊.姣忎釜瀵硅薄閮芥湁涓涓唴閮ㄥ睘鎬[prototype]],鎴戜滑閫氬父绉颁箣涓哄師鍨.鍘熷瀷鐨勫煎彲浠ユ槸涓涓璞,涔熷彲浠ユ槸null.濡傛灉瀹冪殑鍊兼槸涓涓璞,鍒欒繖涓璞′篃涓瀹氭湁鑷繁鐨勫師鍨.杩欐牱灏卞舰鎴愪簡涓鏉$嚎鎬х殑閾,鎴戜滑绉颁箣涓哄師鍨嬮摼.璁块棶涓涓璞$殑鍘熷瀷鍙互浣跨敤ES5涓殑Object.getP...
  • js涓粈涔堟槸鍘熷瀷瀵硅薄鍜屽師鍨嬮摼
    绛旓細姣忎釜 JavaScript 瀵硅薄鍐呴儴閮芥湁涓涓寚鍚戝叾瀹冨璞$殑鈥滄寚閽堚濇垨鑰 鈥滃紩鐢ㄢ滐紝 骞堕氳繃杩欑鏂瑰紡鍦ㄥ璞′箣闂村缓绔嬩簡涓绉嶈仈绯伙紝褰㈡垚浜嗕竴绉嶉摼寮忕粨鏋勶紝鎴戠殑鐞嗚В杩欏氨鏄墍璋撶殑鍘熷瀷閾銆俧unction F() {} // F 鏄竴涓嚱鏁帮紝鍑芥暟涔熸槸瀵硅薄锛岃屼笖姣忎釜鍑芥暟閮芥湁涓涓睘鎬у彨锛"prototype"var o = new F(); // F....
  • javascript鍘熷瀷,鍘熷瀷閾 鏈変粈涔堢壒鐐
    绛旓細javascript鍘熷瀷锛鍘熷瀷閾鐗圭偣锛氬師鍨嬮摼瀹炵幇浜嗙户鎵裤JS涓瘡涓嚱鏁伴兘瀛樺湪鏈変竴涓師鍨嬪璞″睘鎬rototype銆傚苟涓旀墍鏈夊嚱鏁扮殑榛樿鍘熷瀷閮芥槸Object鐨勫疄渚嬨傛瘡涓户鎵跨埗鍑芥暟鐨勫瓙鍑芥暟鐨勫璞¢兘鍖呭惈涓涓唴閮ㄥ睘鎬roto銆傝灞炴у寘鍚竴涓寚閽堬紝鎸囧悜鐖跺嚱鏁扮殑prototype銆傝嫢鐖跺嚱鏁扮殑鍘熷瀷瀵硅薄鐨刜proto_灞炴т负鍐嶄笂涓灞傚嚱鏁般傚湪姝よ繃绋嬩腑灏...
  • 鍘熷瀷閾剧殑鐞嗚В鏄粈涔?
    绛旓細js瀵硅薄鏄敱鏋勯犳柟娉曞垱寤虹殑锛屾瀯閫犳柟娉曟湁涓師鍨媝rototype锛岄偅涔堝璞鍜屽師鍨涔嬮棿鐨勫叧绯诲氨鍙仛鍘熷瀷閾銆備緥濡傦細鐢ㄥ師鍨嬬粰瀵硅薄瀹氫箟鏂规硶obj銆俻rototype銆俧unName = function锛堬級{alert锛涘璞″彲浠ョ洿鎺ヤ粠鍘熷瀷涓皟鐢ㄨ繖涓柟娉昽bj銆俧unName锛堬級锛涙洿澶JS娣卞眰鐭ヨ瘑鍙互杩涚兢鍓嶉潰鏄簩涔6涓棿鏄5涔濅竴鍚庨潰鏄簩涔濋浂锛屾瘡澶╁垎浜獼S娣卞眰鎶鏈
  • 鍘熷瀷閾浠嬬粛
    绛旓細, 濡傛灉鏄柟娉曞氨杩斿洖xxx is not a function.js涓殑瀵硅薄閮芥槸鐢辨瀯閫犲嚱鏁板垱寤虹殑 1.鑷畾涔夋瀯閫犲嚱鏁 2.鏌ョ湅鍐呯疆瀵硅薄鐨鍘熷瀷閾 3.鍑芥暟涔熸槸瀵硅薄绫诲瀷锛 楠岃瘉锛氬璞℃嫢鏈夌偣璇硶鍔ㄦ佹坊鍔犲睘鎬э紝濡傛灉鍑芥暟涔熻兘鍍忓璞′竴鏍锋嫢鏈夌偣璇硶鍔ㄦ佹坊鍔犲睘鎬 鐢卞師鍨嬪璞$湅 instanceof ...
  • js prototype鏄粈涔
    绛旓細鍗冲師鍨嬪璞★紝绠绉板師鍨嬨傛墍浠ュぇ澶氭暟鎶妏rototype涔嬮棿鍙師鍨嬨傞氳繃鍘熷瀷鍙互瀹炵幇鏂规硶鎴栬呭睘鎬ф墿鍏 姣斿 function A(){}A.prototype.show=function(){//鎵╁厖鍑芥暟A鐨勬柟娉晄how alert('1');}瀹炵幇鍘熷瀷閾鏂瑰紡鐨勭户鎵裤俧unction B(x,y){ this.y = y; } B.prototype = new A();//杩欐槸b涔熸湁show鏂规硶 ...
  • js鍘熷瀷閾鍜岀户鎵跨殑鐞嗚В
    绛旓細1.鍘熷瀷缁ф壙閾鹃《绔负Object 銆Js鍑芥暟鏄璞 2.褰撹鍙栧璞′腑鐨勫睘鎬ф椂锛屽厛鍘诲疄渚嬫湰韬腑鎼滅储锛屽鎼滅储涓嶅埌鍒欏幓鎸囧悜鐨勫師鍨嬩腑鎼滅储 1.鍘熷瀷鐨瀛樺湪鎰忎箟鍦ㄤ簬瀹炵幇缁ф壙鍏变韩锛屾槸鍦ㄦ瀯閫犲嚱鏁颁腑瀹氫箟鐨勪竴涓垚鍛樺璞★紝鍦ㄤ笅娆″疄渚嬪寲鏃朵笉闇瑕佸湪鏋勯犲嚱鏁颁腑瀹氫箟鎴愬憳 灏卞彲瀹炵幇瀹炰緥鍏变韩鏂规硶灞炴с 渚嬪瓙锛氶氬父涓恒 鏋勯犲嚱鏁...
  • 扩展阅读:js原型原型链 面试回答 ... 原型设计工具 ... 原型原型链js通俗易懂 ... 深入理解原型和原型链 ... js原型和原型链的理解 ... js 作用域链的概念 ... 原型链的理解 一句话 ... 前端面试原型和原型链 ... 原型与原型链面试怎么答 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网