1、リファレンス リファレンスは、オブジェクトの実際の位置へのポインタです。次の引用符の使用例を見てください:
]
この例では、2 つのオブジェクトはすべて同じオブジェクトを指します。1 つのオブジェクトの属性内容が変更されると、他のオブジェクトにも影響します。
今回は配列を使用して参照を説明します。
外部 Js を導入する必要がある場合は、更新して実行する必要があります
]
[Ctrl A すべて選択 注:
外部 Js を導入する必要がある場合は、更新して実行する必要があります
]
[Ctrl A すべて選択 注:
外部 Js を導入する必要がある場合は、更新して実行する必要があります
]
この例に示すように、文字列操作を実行すると、結果は文字列の変更されたバージョンではなく、常に新しい文字列オブジェクトになります。 『Advanced JavaScript Programming』という本を読んだことがあるかどうかはわかりませんが、値渡しとアドレス渡しに関するセクションがあります。興味があれば、行って見ることができます。
JavaScript は、他のオブジェクトへの一連の参照を維持する言語であり、参照を通じてプログラムに大きな柔軟性をもたらします。
2. 関数のオーバーロード
関数のオーバーロードの特徴は、渡されるパラメーターの数や種類に応じて、異なる機能を発揮するように関数をオーバーロードすることです。 1 つは受信パラメータの数を決定すること、もう 1 つは受信パラメータのタイプを決定することです。
[Ctrl A すべて選択 注:
[Ctrl A すべて選択 注: 外部 Js を導入する必要がある場合は、 を実行するために更新する必要があります]
2-2,判断传入参数的类型
第一种判断类型的方式:
判断类型需要用到JavaScript中另一个操作符——typeof。 它用来表达变量内容的类型,返回的是字符串。比如如果一个变量是字符串,那么typeof后,则返回( "string" )。
经常我们会用到如下判断:
if( typeof num == "string" ){
num = parseInt( num );//如果是一个字符串,则把字符串解析出整数
}
if( typeof arr== "string" ){
arr= arr.split(",");//如果是一个字符串,则根据逗号来分割成数组
}
例如把前面的makeArr()函数改成只能接受字符串类型的参数,代码如下:
最终结果 a.length 为2,因为后面2个参数是number 类型。
第二种判断类型的方式:
此方法需要引用所有JavaScript对象都带有的一个属性,构造函数——constructor。这一属性引用的是原本用来构造该对象的那个函数。
if( num.constructor == String ){
num = parseInt( num );//如果是一个字符串,则把字符串解析出整数
}
if( arr.constructor == String ){
arr= arr.split(",");//如果是一个字符串,则根据逗号来分割成数组
}
if( newArr.constructor == Array ){
newArr = newArr.join(",");//如果是一个数组,则根据逗号来组成字符串
}
执行constructor后的结果是一个对象,而执行typeof后的结果是一个字符串。看下表的对比:
变量 |
typeof 变量 |
变量.constructor |
{a:"b"} |
"object" |
Object |
["a","b"] |
"object" |
Array |
function(){} |
"function" |
Function |
"a" |
"string" |
String |
66 |
"number" |
Number |
true |
"boolean" |
Boolean |
new User() |
"object" |
User |
通过对传入参数的数量和类型的判断,那么函数重载也就简单了。