前端面试 js
作用域链
内存管理
垃圾回收器
引用计数
默认栈里面会有一次引用
问题:循环引用,会产生内存泄漏
标记清除
垃圾回收期会定期从根开始遍历,找到有引用的对象
闭包
内存泄漏
this的指向
默认绑定
独立调用的this都是window
function foo(){console.log(this)
}
foo()//独立 默认绑定
var obj={name:'gg',foo:foo
}
obj.foo()//this为obj 隐式绑定
隐式绑定
显示绑定
ps:虽然执行是独立的但已经显示绑定了this了
new绑定
优先级
原型链
function Person(name) {this.name = name;
}
console.log(Person.prototype); //{}
//prototype为构造函数独有指向person的原型对象Person.prototype.getName = function () {return this.name;
};const alice = new Person("Alice");
// console.log(Object.getOwnPropertyDescriptors(Person.prototype.__proto__));console.log(alice.__proto__ === Person.prototype) //true
// 实例对象的原型对象就是构造函数的原型对象
console.log(Person.prototype.constructor) //Person的构造函数
console.log(Person.prototype)
console.log(Person.prototype.__proto__ === Object.prototype) //true
//是对象都有__proto__属性,Object是object的构造函数
console.log(Person.__proto__ === Function.prototype) //true
console.log(alice.getName());