/*1.为什么要有两种盒模型?IE的盒模型存在的必然性是什么?
答:标准盒模型中width和height指的是内容区域的宽度和高度,增加内边距、边框和外边距不会
影响内容区域的尺寸,但是会增加元素框的总尺寸;但在IE6浏览器的width不是内容的宽度,而是内容、
内边距和边框的宽度总和。
实际上IE的盒模型更加合理,w3c意识到了这个问题,重新定义盒模型是不可能的,所以在CSS3中,
有这个属性:box-sizing,其有两个可选值,一个是默认的content-box一个是border-box,选用后者,
盒模型将按IE6的方式进行处理。
2.设计页面时,使用哪种盒模型?如何兼顾IE和其他浏览器来设计?
3.如何实现模块化?(用过commonJS之类的么)
4.学习一下React、NodeJS、webpack*/
/*
* 遇到这样一道题:
(function(){
function A(){
var v = ‘a’;
this.getVar = function(){
console.log(v);
}
}
function B(){
var v = ‘b’;
A.call(this);
}
var b = new B();
b.getVar();
}());
最后的结果输出竟然是a,在学校论坛上问过之后,终于明白了,当A.call(this);在执行的时候,是将this作为上下文传递给A立即执行,相当于是有一个IIFE,当前执行环境是this。所以按照理解应该是下面这样:
var v = ‘b’;
(function(self){
var v = ‘a’;
self.getVar = function(){
console.log(v);
}
})(this);
此时B中的代码相当于是这样:
(function(){
function A(){
var v = ‘a’;
this.getVar = function(){
console.log(v);
}
}
function B(){
var v = ‘b’;
(function(self){
var v = ‘a’;
self.getVar = function(){
console.log(v);
}
})(this);
}
var b = new B();
b.getVar();
}());
所以在进行b.getVar();时,根据作用域链,会先找到’a’。并没对B的作用域中的v进行改变,编写函数,仍可访问到’b’。
(function(){
function A(){
var v = ‘a’;
this.getVar = function(){
console.log(v);
}
}
function B(){
var v = ‘b’;
A.call(this);
this.getV = function(){
console.log(v);
}
}
var b = new B();
b.getVar(); //a
b.getV(); //b
}());
* */