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

JS 继承当中构造函数的申明方式?

JS 继承当中构造函数的申明方式?

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

1 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

函数定义有3中实现方式

new Function('a', 'b', 'return a + b')
function name([param,[, param,[..., param]]]) {
   [statements]
}
let function_expression = function [name]([param1[, param2[, ..., paramN]]]) {
   statements
};

构造函数不常用主要说一下函数声明函数表达式的区别
区别很简单
函数声明 函数声明提升 可以再声明语句之前调用函数,理解为声明语句被提升到了执行环境顶部,声明提升的特性在es6 module中可以解决了循环引用
函数表达式 没有了函数声明提升但是可以使用var,let,const的特性
就你的代码而言没有区别


查看完整回答
反对 回复 2019-02-05
  • 1 回答
  • 0 关注
  • 396 浏览
慕课专栏
更多

添加回答

举报

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