JavaScript中值类型与引用类型实例说明

复制代码 代码如下:

复制代码 代码如下:

5,闭包
闭包意味着内层的函数可以引用存在于包围它的函数内的变量,就算外层函数的实施已经甘休。
让大家先来看叁个闭包的例子。

附:

<script type=”text/javascript”>
var str = ‘abced’;
var obj = new String(str);
function newToString() {
return ‘hello,world’;
}
function func(val) {
val.toString = newToString;
}
func(str); //ps:实际只传入了str的值,由此对它的toString校正是虚幻的
传入的str约等于是她的二个别本 改革职和副职本的主意 不影响原来的演算结果
alert(str.toString()); //结果为 abced

[Ctrl+A 全选 注:如需引进外界Js需刷新本事试行]
代码①是处于函数内层,不过它能够应用外层的变量num。
闭合还是能够解决另几个宽广的Js难题,全局变量的震慑。
通过自行实行无名函数组合闭包,便可把本来属于全局的变量掩盖起来。看上面包车型的士例证:

JavaScript中的值类型与援引类型

func(obj);
//ps:传入了叁个目的的引用(即str本人,或然说是内部存款和储蓄器地址),因此对它的toString改善将会潜濡默化到后来
alert(obj.toString()) 的云寻
alert(obj.toString()); //结果为 hello,world
</script>

[Ctrl+A 全选 注:如需引进外界Js需刷新才干实践]
在动用setTimeout时,我们日常也用上了闭包。

数据类型 值/援引类型 备注

附:

demo

undefined 值 无值

JavaScript中的值类型与援用类型

CssRain

number 值

数据类型         值/援用类型         备注

[Ctrl+A 全选 注:如需引进外界Js需刷新能力奉行]
以这种办法使用setTimeout(),可避防止有些题目。 当然使用闭包
也会拉动一些难点。如下代码所示:

boolean 值

undefined       值                     无值

demo

string 值 字符串在赋值运算中会按援引类型的方法来拍卖

number          值           

AAA BBB CCC