我正在玩javascript对象来更好地理解"this"和函数上下文.我偶然发现了这个问题.我收到错误"obj2未定义",除非我在分配后运行window.obj2(),但我不知道为什么.将函数分配给window.obj2并不是立即执行它不应该足够吗?我知道你不应该污染窗口对象,这只是一个测试.谢谢!
window.obj2 = function(){
console.log('obj2 in window.object',this);
}
window.obj2(); // problem when this line is commented out
(function () {
var parent = {
obj : function(){
//console.log(this);
obj2();
this.obj2();
window.obj2();
},
obj2 :function(){
console.log('obj2 in parent',this);
}
}
parent.obj();
}());
Run Code Online (Sandbox Code Playgroud)
说明
OP询问为什么在定义它之后必须执行该函数以便稍后在代码中定义...看看当你注释掉问题行时会发生什么.
我遇到了 CSS 问题。考虑以下布局:
<div class="footer-container" style="background: #ff00ff">
<footer class="wrapper"><h4 style="margin: 20px 0">Some Headline</h4></footer> </div>
Run Code Online (Sandbox Code Playgroud)
h4 的垂直边距不会扩展容器 div,而是“溢出”,因此容器 div 上方和下方有 20px 的边距,该边距没有任何背景颜色。我知道相邻元素的垂直边距会折叠,但这似乎是另一回事。
感谢您的回复!