成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

【JavaScript】【函數(shù)】蛛絲馬跡

shinezejian / 2833人閱讀

摘要:通過函數(shù)聲明定義的函數(shù),其是后的標識符通過函數(shù)表達式定義的函數(shù),其是空字符串。。函數(shù)內(nèi)部的類數(shù)組對象,包含傳入函數(shù)中的所有參數(shù)。返回實際傳入函數(shù)的參數(shù)個數(shù)。這個過程有四個步驟創(chuàng)建空對象使的指向構造函數(shù)的原型以作為構造函數(shù)的上下文調(diào)用。

函數(shù)屬性

name。Firefox、Safari、Chrome、Opera支持這個非標準屬性。通過函數(shù)聲明定義的函數(shù),其namefunction后的標識符;通過函數(shù)表達式定義的函數(shù),其name是空字符串。

  var a = function() {};
  var b = new Function();
  function c() {}
  console.log(a.name); //""
  console.log(b.name); //anonymous
  console.log(c.name); //c

prototype。函數(shù)原型。

length。返回定義函數(shù)的參數(shù)個數(shù)。

  var a = function(){};
  function b(i) {return i;}
  console.log(a.length); //0
  console.log(b.length); //1    

arguments。函數(shù)內(nèi)部的類數(shù)組對象,包含傳入函數(shù)中的所有參數(shù)。可以通過數(shù)組下標的方式訪問傳入函數(shù)里的每一個參數(shù)。arguments.length返回實際傳入函數(shù)的參數(shù)個數(shù)。

  function add() {
      var _length = arguments.length;
      var _init = 0;
      for (var i=0; i<_length; i++) {
          _init += arguments[i];
      } 
      return _init;
  }
  add(1,2,3,4); //10

calleecaller。

  function outer() {
      function inner(){
          console.log(arguments.callee.name); //inner
          console.log(arguments.callee.caller.name); //outer
      }
      inner();
  }
  outer();

this函數(shù)內(nèi)部屬性。this指的是誰?了解更多。

函數(shù)方法

apply()call()

  function sum(num1, num2) {
      return num1 + num2;
  }
  function anotherSum(num1, num2) {
      return sum.apply(this, arguments);
  }
  function yetAnotherSum(num1, num2) {
      return sum.call(this, num1, num2);
  }

  console.log(sum(1,2)); //3
  console.log(anotherSum(1,2)); //3
  console.log(yetAnotherSum(1,2)); //3

bind()

  var window.color = "red";
  var o = {color:"blue"};
  function sayColor() {
      return this.color;
  }
  console.log(sayColor()); //red
  var sayOColor = sayColor.bind(o);
  console.log(sayOColor()); //blue

函數(shù)聲明提升,使其在加載作用域數(shù)據(jù)之前(編譯階段)可用。

   //變量聲明提升
   console.log(a); //undefined
   var a = 1;
   console.log(a); //1
   //這個過程相當于
   var a;
   console.log(a);
   a = 1;
   console.log(a);

   //函數(shù)聲明會覆蓋同名變量聲明
   console.log(typeof x); //function
   function x() {}
   var x;

若傳入函數(shù)的參數(shù)如果是基本類型值,函數(shù)操作的是這個參數(shù)的副本;若參數(shù)是對象,該參數(shù)只是這個對象的引用,函數(shù)操作的是對象本身。

   var a = 1;
   var b = {value: 1};
   function add(x) {
       (typeof x === "number") ? (x++) : (x.value++);
   };
   add(a);
   add(b);
   console.log(a);  //1
   console.log(b.value); //2

new這個過程有四個步驟

   // new Func();
   var obj = {}; //1.創(chuàng)建空對象
   obj.__proto__ = Func.prototype; //2.使obj的__prototype__指向構造函數(shù)的原型
   var ret = Func.call(obj); //3.以obj作為構造函數(shù)的上下文調(diào)用Func。在為實例構造屬性之前,屬性值為undefined。
   if (typeof ret == "object") { //4.如果返回的是對象,就會覆蓋構造的實例;否則會忽略返回的基本類型值。
       return ret;
   } else {
       return obj;
   }

轉(zhuǎn)載請注明出處:https://segmentfault.com/a/1190000004579488

文章不定期更新完善,如果能對你有一點點啟發(fā),我將不勝榮幸。

文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/78851.html

相關文章

  • 理解Node.js的事件輪詢

    摘要:實際上官方給出的單線程是具有誤導性的。如果開發(fā)者在回調(diào)函數(shù)中調(diào)用了阻塞方法比如上文中的函數(shù),那么整個事件輪詢就會阻塞,事件隊列中的事件得不到及時處理。后記參考文章事件輪詢詳述 前言 總括 : 原文地址:理解Node.js的事件輪詢 Node小應用:Node-sample 智者閱讀群書,亦閱歷人生 正文 Node.js的兩個基本概念 Node.js的第一個基本概念就是I/O操作開銷是...

    testHs 評論0 收藏0
  • Django搭建個人博客:改寫View視圖

    摘要:改寫視圖函數(shù)上一章我們感受了視圖的工作流程。循壞表示依次取出中的元素,命名為,并分別執(zhí)行接下來操作。即為語言,中間包裹了一個段落的文字。有疑問請在杜賽的個人網(wǎng)站留言,我會盡快回復。 改寫視圖函數(shù) 上一章我們感受了視圖的工作流程。 為了讓視圖真正發(fā)揮作用,改寫article/views.py中的article_list視圖函數(shù): article/views.py from django...

    KaltZK 評論0 收藏0
  • flink學習系列--基礎知識學習(四)

    摘要:前言這一講將介紹一下序列化機制和過程函數(shù)。然而由于的類型擦除,自動提取并不是總是有效。開發(fā)者在自定義類上使用注解,隨后創(chuàng)建相應的并覆蓋方法。 前言 這一講將介紹一下序列化機制和過程函數(shù)(processfunction)。 序列化機制 使用 Flink 編寫處理邏輯時,新手總是容易被林林總總的概念所混淆: 為什么 Flink 有那么多的類型聲明方式? BasicTypeInfo.ST...

    piglei 評論0 收藏0
  • PhoneGap極光推送 cordova消息推送

    摘要:之前做過一個用到了消息推送,最近這個項目又用到了推送。限制命名長度限制為字節(jié)判斷長度需采用編碼。參考文獻插件文檔極光推送文檔 前言 說一下寫這篇文章的初衷。之前做過一個APP用到了消息推送,最近這個項目又用到了推送。但是由于兩個項目間隔4個多月,推送集成、使用方式等都忘了,所以當時又去看了以前項目的源碼和一些推送相關的博客,尋找那些蛛絲馬跡。突然覺得這樣很浪費時間,為何自己不寫篇文章總...

    Taste 評論0 收藏0
  • ThinkPHP空操作、空控制器處理

    摘要:比如對于空操作空控制器,你會暴露給給黑客你網(wǎng)站后臺所用的框架,黑客會根據(jù)框架本省的漏洞對你網(wǎng)站進行攻擊。因此,我們需要對空控制器空操作進行處理,不給黑客留下任何蛛絲馬跡。好啦,空操作空控制器就先說到這里 當一個高手瀏覽你的網(wǎng)站的時候,你網(wǎng)站的報錯信息將給黑客提供攻擊你網(wǎng)站的信息。比如對于空操作、空控制器,你會暴露給給黑客你網(wǎng)站后臺所用的框架,黑客會根據(jù)框架本省的漏洞對你網(wǎng)站進行攻擊。因...

    suxier 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<