日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

再谈原型和原型链

發布時間:2024/4/17 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 再谈原型和原型链 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
function A(){} A.prototype.c = 2; var a = new A(); A.prototype.c = 5; alert(a.c) ? function B(){} B.prototype = {c:2}; var b = new B(); B.prototype = {c:5}; alert(b.c) 結果是上面為5,下面為2。為什么呢,我仔細思考了一下,發現其實原因很簡單。 先來看一個小例子: 為什么a.c = 5,而 b.c = 2?這個很簡單吧,不用解釋吧。 再來看開始的代碼,完全一樣的道理。 $ = A.prototype $.c = 2 a.c = $.c a.c = 2 $.c = 5 a.c = 5 ? $ = B.prototype $ = {c:2} b.c = $.c b.c = 2 $ = {c:5} b.c = 2 JS里,對象是以指針的形式進行賦值。 當我們new一個實例的時候,對象的_proto_會指向函數的prototype對象,也就是把prototype的指針賦給_proto_。 當我們修改prototype里的屬性,而不是重寫prototype,實例對象的_proto_的指針不變,函數的prototype的指針也不變。 變的只是指針指向的那個地址里的東西,所以實例對象的屬性會跟著變。 當我們重寫prototype里,prototype的指針改變,指向了另一個新的地址。 而實例對象的 _proto_的指針不會改變,依然指向之前的prototype的存放地址。 而我們修改的屬性是在新的地址里。所以實例對象的屬性不會跟著變。 That's All。

轉載于:https://www.cnblogs.com/misadancer/p/3507723.html

總結

以上是生活随笔為你收集整理的再谈原型和原型链的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。