标签:function 继承 javascript Tager 原型 constructor prototype Orgin
/**
@inhert 原型继承 圣杯模式
@param {function} Targer 需要继承的原型
@param {function} Orgin 被继承的原型
*/
const inherit = (function (){
function F(){}
return function(Targe,Orgin){
F.prototype = Orgin.prototype
Tager.prototype = new F()
Tager.prototype.constructor = Tager
Tager.prototype.uber = Orgin.prototype
}
}())
1 F函数只是用于过渡给闭包的,用于继承原型的中间件
2 把Orgin函数的原型赋值给F函数,他们的原型就是同一指向
3 通过new F()把实例化的函数赋值给Tager函数的原型
4 现在Tager的constructor实际上指向Orgin的constructor,我们可以手动把constructor修改为Targer的constructor
5 现在修改Targer的原型Orgin的原型不会改变,因为他是通过中间件实例化出来的,所以我们可以把Orgin的原型通过变量保持到Targer的原型里面
标签:function,继承,javascript,Tager,原型,constructor,prototype,Orgin 来源: https://blog.csdn.net/weixin_45418329/article/details/117716915
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。