沒有NumberToMystring是不一樣的夾子。
夾具有不同的目的,所以是NumberToMystring。 Clamp確保該數字在一個範圍內,而後者是一個轉換操作員。鉗
用法
var x = (5).clamp(0, 255); return 5
Number.prototype.clamp = function(min, max) {
return Math.min(Math.max(this, min), max);
};
如果你看到這個原型。你將在return語句中有一個這個對象。這只不過是你在我們的案例中稱爲夾的數字,它是5.
要理解爲什麼它發生這樣的事情,你必須理解大量的概念,從執行上下文,範圍開始,然後訪問原型。
嘗試改變這樣的鉗位功能,看看它返回。這將幫助你理解爲什麼你的JS小提琴代碼不起作用。
Number.prototype.newclamp = function(min, max) {
return this;
};
這將返回Number對象。如果您在此調用過程分析範圍鏈,那麼你會發現在其範圍5時進行
var y = 5;
var z;
z = y.newclamp();
z.toString() // return 5;
Number.prototype.NumberToMystring = function(n) {
return n.toSTring();
};
在這個特殊的原型任何操作。因此5將被退回,您只使用傳遞時的說法你稱之爲原型。這就是爲什麼NumberToMystring(5)返回「5」以5作爲參數
對於理解原型,作用域鏈和執行上下文看看這個網站。 http://dmitrysoshnikov.com/ecmascript/chapter-3-this/
已更新爲使用說明。 – karthick 2013-03-26 07:56:54
'NumberToMystring()'函數沒有任何意義。它是所有Number對象的一種方法,但它*忽略了它被調用的數字。例如,你可以用'(10).NumberToMystring(20)'來調用它,並且函數根本不會對被調用的'10'做任何事情。這跟你調用'(20).toString()'一樣。 – 2013-03-26 08:00:31
這聽起來像你可能會猜測這個'.prototype.'業務是關於什麼的,是的?在這種情況下,最好的方法是閱讀它們:https://www.google.com/search?q=javascript+prototype – 2013-03-26 08:03:07