学习第四天

94 阅读1分钟

昨日忘写,今日补上..

立即执行函数

1.立即执行函数执行场景二:

有多个按钮,因为var没有作用域会导致所有按钮的点击事件都变成最后一个数加一,加上立即执行函数后可解决此问题, 代码如下:

 <button class="btn">按钮一</button>
  <button class="btn">按钮二</button>
  <button class="btn">按钮三</button>
  <button class="btn">按钮四</button>
  <script>
  //  立即执行函数的使用场景二:
    var btnlist = document.querySelectorAll(".btn")
    for(var i=0;i<btnlist.length;i++){
      var btt = btnlist[i];
      (function(x){
        btt.onclick= function(){
        console.log("您点了按钮"+(x+1))
      }}
      )(i)
    }
  </script>

2.立即执行函数的另一种写法

正常写法: (function(){})() 写法二: (function(){}())

对象

删除对象内属性的方法:假如有一个对象info内有一属性name,如果想要删除name,则可以使用delete info.name完成

对象可以使用for in循环 例如:

let info = {
name:'哈哈哈',
age:18
}
for(let item in info) {
 console.log("key值为"+item+"value值为"+info[item])
}

内存

原始类型(值类型)都在栈内存中,对象类型都在堆内存中 对象类型的内存分布: 假如有如下对象:

let info = {
name:'很适合',
age:18
}

其中{ name:'很适合', age:18 }在堆内存中会生成一个内存地址,对应内存地址放到了栈内存中