代码如下:
1,写出输出值;
我的答案:
立即调用函数改变了全局变量question为wtf???;
objB 未声明,因此会隐性声明一个全局变量objB,然后赋值给objA;
objB.then.print中的this指向作用域中的question,objB为全局变量 ,所以输出为wtf???
2,严格模式如何修改;
严格模式中,必须先声明变量,this不能指向全局对象,所以声明全局变量,并且更改this.question为window.question:
…………………………………………………………………………………………………………………………………..
3,个人收获
之前一直不懂两个等号的意思,通过这个题目,稍微了解了下,一次是赋值,一次是引用。个人理解~
var objA = objB ={};
objB隐性声明为全局变量并且赋值,而objA则是对objB的一次引用;
以及函数作用域的问题,JavaScript高级程序设计的确是一本好书,哈哈哈。