为什么在数字上调用toString时,它不像典型函数那样被调用。我希望var num = 5; toString(num);
,但它会像var num = 5; num.toString();
那样完成。为什么一个句点用于在数字上调用函数而不是将数字作为参数提供?我知道句点用于引用对象的属性,但我看不出它是如何适用于这种情况的。很抱歉,如果这是一个简单的问题,但我是编程新手,我真的想在继续之前理解这门语言。
答案 0 :(得分:0)
toString()
实际上是window.toString()
,Object.prototype.toString
。
它不需要任何论据。
console.info(toString === window.toString)
console.info(window.toString())

您可能认为全球,内置函数实际上是window
instance的方法。
答案 1 :(得分:0)
在JavaScript中,.
用于访问对象的属性。在这种情况下,Number上有一个属性toString
,它是一个可以调用的函数。
var num = 5;
num.toString //function toString() { [native code] }
num.toString() //"5"
在toString
对象之前没有任何内容的函数window
实际上是window.toString //function toString() { [native code] }
对象的属性,并且等效于以下内容:
private void makeArrayRequest(String setSwitch)
{
try {
Map<String, String> params = new HashMap();
params.put("func", setSwitch);
JSONArray parameters = new JSONArray(params);
DisplayToast("Sending: " + setSwitch);
JsonArrayRequest jsonRequest = new JsonArrayRequest(
Request.Method.POST, url, parameters,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
DisplayText("Response: " + response.toString());
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
//error.printStackTrace();
DisplayText("Error:"+error.getMessage());
}
}
);
Volley.newRequestQueue(this).add(jsonRequest);
} catch(JSONException e) {
// this ends up getting thrown because of the HASH input
DisplayText("ArrErr:"+e.getMessage());
}
}
private void makeObjectRequest(String setSwitch)
{
DisplayToast("Sending: " + setSwitch);
Map<String, String> params = new HashMap();
params.put("func", setSwitch);
JSONObject parameters = new JSONObject(params);
JsonObjectRequest jsonRequest = new JsonObjectRequest(
Request.Method.POST, url, parameters,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
DisplayText("Response: " + response.toString());
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
//this ends up getting thrown because of JSONArray response?
DisplayText("Error:"+error.getMessage());
}
}
);
Volley.newRequestQueue(this).add(jsonRequest);
}
答案 2 :(得分:0)
数字的原型定义为https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toString。
如果直接使用toString,这意味着您要求全局范围使用全局toString(window.toString())。该窗口非常通用,知道如何将特定数字转换为String。