[英]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.