簡體   English   中英

JavaScript原型(ing)問題

[英]JavaScript prototype(ing) question

試圖掌握Javascript中的原型。 嘗試創建自己的命名空間以擴展JavaScript中的String對象。

這是我到目前為止(一個片段):

var ns {
 alert: function() {
  alert (this);
 }
}
String.prototype.$ns = ns;

如您所見,我正在嘗試將一系列函數放入ns命名空間。 所以我可以執行這樣的命令:

"hello world".$ns.alert();

但問題是, 並沒有引用正在發送的文本(在這種情況下,“你好世界”)。 我得到的是一個警告框,其中包含以下內容:

[對象]

由於沒有完全掌握JavaScript的面向對象特性,我感到很茫然,但我猜我錯過了一些簡單的東西。

有誰知道如何實現這一點 (從嵌套對象獲取源文本)? 除此之外,我不得不做程序編程(ns.alert(“hello world”);)我試圖避免。

謝謝 -

發生這種情況是因為當您調用引用時,其基礎對象被設置為調用方法的this值( 此處提供更多技術細節)。

所以當你調用"hello world".$ns.alert(); alert方法中的this值將引用"hello world".$ns ,即String.prototype.$ns

我不認為在內置對象的prototype中添加對象級別(命名空間)可能很有用,我通常建議不要修改你不擁有的對象

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM