jsの関数型とは何ですか

一个新手
リリース: 2017-10-20 11:04:43
オリジナル
1294 人が閲覧しました

最も興味深い関数です

  有意思的根源在于- 函数也是对象,同样有拥有属性和方法。 
  由于函数是是对象,那么函数名也就相当于指向函数对象的指针
 通常函数是由"函数声明"创建:
ログイン後にコピー
1 function(sum1,sum2){
2   reutnr sum1 + sum2;  
3 }
ログイン後にコピー
rreee
  也可以使用"函数表达式"创建:
ログイン後にコピー
rree
1  var sum = function(sum1,sum2){
2    return sum1+sum2;
3 };
ログイン後にコピー
  1. 関数式には関数名がありません

  2. 関数式はセミコロンで終わる必要があります

ha関数名の複数の関数

  还有一种方式使用"构造函数"创建: (但不推荐)
ログイン後にコピー
<span style="font-family: "Microsoft YaHei"; font-size: 16px">  //这种方式,会导致两次解析代码,第一次解析常规的代码,第二次解析传入构造函数中的字符串。</span><br/><span style="font-family: "Microsoft YaHei"; font-size: 16px">1 <span style="color: #0000ff">var</span> sum = <span style="color: #0000ff">new</span> Function("sum1","sum2","return sum1+sum2")</span>
ログイン後にコピー
  "函数声明"与"函数表达式"的区别在于:
ログイン後にコピー
  上面提到,函数是对象,而函数名仅仅是执行函数对象的指针。
  这代表着,通过将函数名赋值给其他变量,其他变量则也可以通过自身调用该函数。  注意: 访问函数对象指针时,则需要带小括号,如上面函数访问 sum 函数的指针
           则需要将 sum 赋值给一个变量,该变量便可拥有指向同等函数的指针。    
ログイン後にコピー

関数はオーバーロードされていません

eg: var sum1 = sum; // sum(); sum1(); 执行的结果相同
ログイン後にコピー
强调: 使用 "函数名+()",代表着调用该函数, 不添加 "()",则代表访问该"指向该函数对象的指针"
        将函数名设置为 null ,则可以使其指向的函数断绝联系。
ログイン後にコピー

関数宣言と関数式の違い

eg: sum = null; // sum(); 则会报错,提示sum不是一个函数, null代表着空对象指针
ログイン後にコピー

値としての関数

  相同的函数名,后者会替换前者(函数声明或者函数表达式都是如此,这里以函数声明为例子)
ログイン後にコピー
eg: function sum(sum1){ return sum1+ 100 }    
function sum(sum2){ return sum2+ 200 }
    sum(100);   // 300;
ログイン後にコピー

関数の属性

  js解析器在对于这两者是由区别的。
  函数声明的函数,在开始执行代码之前,就会通过函数声明提升的过程,读取并将函数声明添加到执行环境中。
  即使函数在调用函数后面,也不会影响函数求值。
  而函数表达式则不会,解析器必须执行到当前代码块才会被初始化并执行。如果调用在前,则
ログイン後にコピー
rreerree

関数のメソッド

りー

以上がjsの関数型とは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!