亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 417 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號