javascript高级程序设计 4.1
字符串等基础类型无法添加属性,但是引用类型可以添加:
var i="hehe" i.name=12; alert(i.name) //undefined(基础类型) var i=new Object(); i.name=12; alert(i.name) //12(引用类型)
引用类型只是引用,“引用二字”说明了此类型数据相对基础类型可变通少,权限不够的意思么?
<script> function setName(obj){ obj.name="qujialei"; obj=new Object(); obj.name="wujinyun"; } var person=new Object(); setName(person); alert(person.name); </script>
上例子中最后显示是qujialei,函数内部虽然修改了参数,但是原始引用保持不变。(这句话不怎么理解啊,意思是引用了‘qujialei’后,后面的就没了?)书上说重写函数内部obj时候变量所引用的已经是一个局部变量,所以会在函数执行完成后被销毁。(有点道理,不甚明朗)
作用域的概念:子函数可访问父函数的变量,而父函数无法访问子函数的变量。子函数会先在自己的作用域中搜索对象,搜索不到则向父元素搜索对象,一级一级作用上去。
函数的参数当做变量对待,规则与上一行相同。

浙公网安备 33010602011771号