已采纳回答 / hey自然
是的。e.g. var str = "helloworld";Object.prototype.toString.apply(str);return: "[object String]"明显是创建了一个临时的包装对象,new String(str);具体参见 JavaScriot权威指南 3.6节包装对象(Wrapper Objects)比较懒就不敲字啦 :)
2015-10-21
匿名对象(没有被引用的对象)就会被垃圾回收,如果函数返回了一个子函数(子函数中有自由变量,使用了父函数的变量),那么当函数执行完后,就会将这次执行的上下文(VO)通过返回的子函数(函数的内部属性[[scope]]保存着在堆中创建的对象的引用,这样就不会被垃圾回收了)从而得到保存.
也就是函数闭包(VO)的生命周期得到了延长
也就是函数闭包(VO)的生命周期得到了延长
2015-10-19
关键是理解javascript函数的执行和java中的函数的执行在栈中的表现是不同的,特别是对于局部变量的处理:
java中函数进栈后,里面的局部变量保存在栈内,而javascript的函数进栈后(进入执行上下文),里面的局部变量是保存在堆中的一个对象中(VO),
我么知道堆中的变量属性是都需要初始化值的,所以javascript就将这些变量初始化为undefined,同时函数声明变量初始化值就为声明的函数对象.
当函数执行阶段时,才开始执行里面的赋值语句,但是在函数执行前,我们已经知道此函数可以使用哪些变量了.当函数执行完后,那么此次在堆中创建的对象就会变成匿名对象.闭包就是返回这个对象引用
java中函数进栈后,里面的局部变量保存在栈内,而javascript的函数进栈后(进入执行上下文),里面的局部变量是保存在堆中的一个对象中(VO),
我么知道堆中的变量属性是都需要初始化值的,所以javascript就将这些变量初始化为undefined,同时函数声明变量初始化值就为声明的函数对象.
当函数执行阶段时,才开始执行里面的赋值语句,但是在函数执行前,我们已经知道此函数可以使用哪些变量了.当函数执行完后,那么此次在堆中创建的对象就会变成匿名对象.闭包就是返回这个对象引用
2015-10-19
只要处在表达式的位置上即可 + ()调用符 关键理解表达式
, function(){console.log('Hello ,')} ();
- function(){console.log('Hello -')} ();
+ function(){console.log('Hello +')} ();
delete function(){console.log('Hello delete')} ();
typeof function(){console.log('Hello typeof')} ();
1 % function(){console.log('Hello %')} ();
, function(){console.log('Hello ,')} ();
- function(){console.log('Hello -')} ();
+ function(){console.log('Hello +')} ();
delete function(){console.log('Hello delete')} ();
typeof function(){console.log('Hello typeof')} ();
1 % function(){console.log('Hello %')} ();
2015-10-19
只要处在表达式的位置上即可 + ()调用符 关键理解表达式
, function(){console.log('Hello ,')} ();
- function(){console.log('Hello -')} ();
+ function(){console.log('Hello +')} ();
delete function(){console.log('Hello delete')} ();
typeof function(){console.log('Hello typeof')} ();
1 % function(){console.log('Hello %')} ();
, function(){console.log('Hello ,')} ();
- function(){console.log('Hello -')} ();
+ function(){console.log('Hello +')} ();
delete function(){console.log('Hello delete')} ();
typeof function(){console.log('Hello typeof')} ();
1 % function(){console.log('Hello %')} ();
2015-10-19
不明白这里的`Student.prototype.constructor = Student` 的确切含义? 构造器丢失后,会发生什么?--->
在精华问题中已看到相关解释:
http://www.imooc.com/qadetail/62636
在精华问题中已看到相关解释:
http://www.imooc.com/qadetail/62636
2015-10-19
不明白这里的`Student.prototype.constructor = Student` 的确切含义? 构造器丢失后,会发生什么?
2015-10-19