prototype 属性允许您向对象添加属性和方法
注意: Prototype 是全局属性,适用于所有的 Javascript 对象。
function employee(name,jobtitle,born){ this.name=name; this.jobtitle=jobtitle; this.born=born; } var fred=new employee("Fred Flintstone","Caveman",1970); employee.prototype.salary=null; fred.salary=20000; document.write(fred.salary);
this 在函数的指向有以下几种场景:
作为构造函数被 new 调用;
作为对象的方法使用;
作为函数直接调用;
被 call、apply、bind 调用;
箭头函数中的 this;
new绑定
new绑定>显示绑定>隐式绑定>默认绑定
箭头函数的this绑定是无法通过call apply bind 被修改的
var a = 20 var obj = { a: 40, foo:() => { console.log(this.a) function func() { this.a = 60 console.log(this.a) } func.prototype.a = 50 return func } } var bar = obj.foo() // 浏览器中输出: 20 bar() // 浏览器中输出: 60 new bar() // 浏览器中输出: 60