2014-07-12 153 views
0

嗯,我搜索,沒有找到一種方法來調用一個原型方法沒有實例化另一個對象。我發現怎麼做:JS - 調用靜態方法與原型

var x = new X(); 
X.MyMethod(); 

我真正需要知道的是,如果有一種方法可以做到像jQuery的,做這樣的事情:

var x = "mystring"; 
x.MyMethod(); 

在jQuery UI的,我們稱之爲.draggable (),.resizable()在選定的對象中。我能做同樣的事嗎?

+2

我不知道你正在嘗試做的。沒有字符串,你無法真正調用字符串方法。 –

+0

您是否試圖用自己的方法擴展原生'String'原型? –

回答

1

你想擴展String的原型方法嗎?你需要做這樣的事情:

String.prototype.MyMethod = function() { 
    console.log("MyMethod()"); 
}; 

var x = "mystring"; 
x.MyMethod(); 

參見:How does JavaScript .prototype work?

或者,如果你想成爲真正的聰明,學習:MDN Reference: Define Property

+0

會有我的方式來獲取和操縱我的lambda函數中傳遞的字符串的內容? –

+0

是的。在該函數內部,變量'this'將返回'string'的值,並且您可以隨意操作它 –

+1

@sxnine - 字符串是不可變的,所以您不能在方法中更改當前字符串對象。您可以創建一個新字符串並從方法返回該字符串,但不能更改當前字符串對象。 – jfriend00