apply 和call都沒有返回值。所以result 永遠是undefined。
這里改變this指向,是不是可以用apply比較好,這樣還可以通過arguments傳入參數
這里改變this指向,是不是可以用apply比較好,這樣還可以通過arguments傳入參數
2021-03-27
定義一個局部變量也可以喔
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