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时候变量所引用的已经是一个局部变量,所以会在函数执行完成后被销毁。(有点道理,不甚明朗)

 

作用域的概念:子函数可访问父函数的变量,而父函数无法访问子函数的变量。子函数会先在自己的作用域中搜索对象,搜索不到则向父元素搜索对象,一级一级作用上去。

函数的参数当做变量对待,规则与上一行相同。

 

 

posted @ 2013-09-12 22:46  封雪~道  阅读(126)  评论(0)    收藏  举报