BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / www-technology / #31344同步于 2015/9/14
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖

初学javascript

Jiangshui
2015/9/14镜像同步7 回复
在这个例子中,变量 globalPerson 取得了 createPerson()函数返回的值。在 createPerson() 函数内部,我们创建了一个对象并将其赋给局部变量 localPerson,然后又为该对象添加了一个名为 name 的属性。最后,当调用这个函数时,localPerson 以函数值的形式返回并赋给全局变量 globalPerson。由于 localPerson 在 createPerson()函数执行完毕后就离开了其执行环境,因此 无需我们显式地去为它解除引用。但是对于全局变量 globalPerson 而言,则需要我们在不使用它的 时候手工为它解除引用,这也正是下面例子中最后一行代码的目的。 function createPerson(name){ var localPerson = new Object(); localPerson.name = name; ?} var globalPerson = createPerson("Nicholas"); // 手工解除 globalPerson 的引用 globalPerson = null; 不明白为什么globalPerson = null了还能访问其属性name
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
YuaNs机器人#1 · 2015/9/14
null就不行了吧
guoqu211机器人#2 · 2015/9/14
createPerson这个函数和global没有任何关系啊,从头到尾都是null,而且js里不用就不用管了,不需要显式的设置为null,想删除的话可以试试delete
Jiangshui机器人#3 · 2015/9/14
是我没表达清楚,我的疑问在于通过createperson这个函数不应该完成了对全局变量global 的一个属性name 赋值了嘛,随后又设置为null说是为了释放内存,那么这样之前的赋值有效吗 【 在 guoqu211 的大作中提到: 】 : createPerson这个函数和global没有任何关系啊,从头到尾都是null,而且js里不用就不用管了,不需要显式的设置为null,想删除的话可以试试delete : 发自「贵邮」
YuaNs机器人#4 · 2015/9/15
var globalPerson以后应该进行一系列操作吧,都结束了才设置null。 这几行代码应该是省略了操作过程,null以后赋值都失效了,就和离开函数作用域以后里面的局部变量被销毁是一个意思 【 在 Jiangshui 的大作中提到: 】 : 是我没表达清楚,我的疑问在于通过createperson这个函数不应该完成了对全局变量global 的一个属性name 赋值了嘛,随后又设置为null说是为了释放内存,那么这样之前的赋值有效吗 : : 发自「贵邮」
xssd机器人#5 · 2015/9/15
LZ是怎么访问的呀 你的代码都不能直接运行吧 【 在 Jiangshui 的大作中提到: 】 : 在这个例子中,变量 globalPerson 取得了 createPerson()函数返回的值。在 createPerson() 函数内部,我们创建了一个对象并将其赋给局部变量 localPerson,然后又为该对象添加了一个名为 name 的属性。最后,当调用这个函数时,localPerson 以函数值的形式返回并赋给全局变量 globalPerson。由于 localPerson 在 createPerson()函数执行完毕后就离开了其执行环境,因此 无需我们显式地去为它解除引用。但是对于全局变量 globalPerson 而言,则需要我们在不使用它的 时候手工为它解除引用,这也正是下面例子中最后一行代码的目的。 : function createPerson(name){ : var localPerson = new Object(); : ...................
Jiangshui机器人#6 · 2015/9/15
【 在 xssd 的大作中提到: 】 : LZ是怎么访问的呀 你的代码都不能直接运行吧 : [upload=1][/upload] 这是书上的,我并不知道,不过楼上有大神
Jiangshui机器人#7 · 2015/9/15
【 在 YuaNs 的大作中提到: 】 : var globalPerson以后应该进行一系列操作吧,都结束了才设置null。 : 这几行代码应该是省略了操作过程,null以后赋值都失效了,就和离开函数作用域以后里面的局部变量被销毁是一个意思 : 3q