proto 和constructor.prototype
使用Java<script>proto<strong>使用Java<Script 物件時,了解<Script 之間的差異>proto 和constructor.prototype 至關重要。 <strong>proto 指向物件的直接原型,而 constructor.prototype 指的是建立該物件的函數所建立的物件。這種差異在遍歷原型鏈時可能會導致不同的結果。 </script>
原型鏈遍歷
如提供的程式碼所示,可以使用 proto遍歷物件的原型鏈。範例中,proto 用於遍歷 Gadget 函數實例 newtoy 的原型鏈。每個後續的 proto 呼叫都會在鏈中上升一級,最終返回 null,因為除了 Object.prototype 之外沒有原型。
但是,如果 constructor.prototype.constructor.prototype.constructor.prototype使用時,它也會提升原型鏈,但最終返回初始 Gadget 函數,因為它引用創建 Gadget 構造函數的原型。
Internet Explorer 中的空檢查
在Internet Explorer 中,proto 屬性不可用,可以使用Function 物件上的原型getter 來遍歷原型鏈。下面的程式碼示範如何檢查 null:
function checkNull(obj) { while (obj = obj.prototype) { // Check if the prototype is null } }
以上是proto 和 constructor.prototype 有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!