为了账号安全,请及时绑定邮箱和手机立即绑定

请各位大佬指点!JS 继承当中构造函数的申明方式?求老司机指点!

请各位大佬指点!JS 继承当中构造函数的申明方式?求老司机指点!

FFIVE 2019-08-21 18:24:58
问题描述varinherit=(function(){varF=function(){};//第一种申明方式//functionF(){};//第二种申明方式returnfunction(Target,Origin){F.prototype=Origin.prototype;Target.prototype=newF();Target.prototype.contructor=Target;Target.prototype.uber=Origin.prototype;}}());如上注释所示:第一种算是以变量的形式存储一个函数;第二种我是直接申明一个构造函数;主要是这两种用起来功能都可以实现(都可以new对象),就是不太明白这两种方式的区别;在当前方法中用那种比较好,为什么?烦请各位大大神小弟解惑,感谢!感谢!
查看完整描述

2 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

函数定义有3中实现方式
构造函数
newFunction('a','b','returna+b')
函数声明
functionname([param,[,param,[...,param]]]){
[statements]
}
函数表达式
letfunction_expression=function[name]([param1[,param2[,...,paramN]]]){
statements
};
构造函数不常用主要说一下函数声明和函数表达式的区别区别很简单函数声明函数声明提升可以再声明语句之前调用函数,理解为声明语句被提升到了执行环境顶部,声明提升的特性在es6module中可以解决了循环引用函数表达式没有了函数声明提升但是可以使用var,let,const的特性就你的代码而言没有区别
                            
查看完整回答
反对 回复 2019-08-21
?
千巷猫影

TA贡献1829条经验 获得超7个赞

网上关于这类问题的答案有很多,给楼主个链接WhatisthedifferencebetweenafunctionexpressionvsdeclarationinJavaScript?,在这个链接里你应该可以找到你想要的答案。
                            
查看完整回答
反对 回复 2019-08-21
  • 2 回答
  • 0 关注
  • 244 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信