定义一个局部变量也可以喔
function bind(){
for(var i =0; i < buttons.length; i++){
let num = i;
buttons[i].func = function(){
console.log(num);
}
}
}
function bind(){
for(var i =0; i < buttons.length; i++){
let num = i;
buttons[i].func = function(){
console.log(num);
}
}
}
2021-03-20
new 函数是 在堆内存区进行初始化的. 同时返回了初始化空间的首地址, 也做了__proto__的连接, 这个连接就是'面向对象'的继承链的实现原理, 也就是把新建对象的__proto__指向构造函数的prototype属性 从而实现继承 如果自身有属性覆盖了这个链接(原型链)上的同名属性/方法 就实现了多态 至于面向对象的另外一个重要特征'封装' 主要是通过javascript中作用域的方式实现的 在构造方法中 挂载在this下的属性/方法 可以被实例使用 因为返回对象的初始全貌就是在构造函数中通过this定义的 但比如用var定义的局部变量 就无法被实例话的对象使用了 这是所谓的'封装'
2021-03-20