成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

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

shinezejian / 2874人閱讀

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

函數(shù)屬性

name。Firefox、Safari、Chrome、Opera支持這個(gè)非標(biāo)準(zhǔn)屬性。通過(guò)函數(shù)聲明定義的函數(shù),其namefunction后的標(biāo)識(shí)符;通過(guò)函數(shù)表達(dá)式定義的函數(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ù)個(gè)數(shù)。

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

arguments。函數(shù)內(nèi)部的類數(shù)組對(duì)象,包含傳入函數(shù)中的所有參數(shù)??梢酝ㄟ^(guò)數(shù)組下標(biāo)的方式訪問(wèn)傳入函數(shù)里的每一個(gè)參數(shù)。arguments.length返回實(shí)際傳入函數(shù)的參數(shù)個(gè)數(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指的是誰(shuí)?了解更多。

函數(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
   //這個(gè)過(guò)程相當(dāng)于
   var a;
   console.log(a);
   a = 1;
   console.log(a);

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

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

   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這個(gè)過(guò)程有四個(gè)步驟

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

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

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/78851.html

相關(guān)文章

  • 理解Node.js的事件輪詢

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

    testHs 評(píng)論0 收藏0
  • Django搭建個(gè)人博客:改寫View視圖

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

    KaltZK 評(píng)論0 收藏0
  • flink學(xué)習(xí)系列--基礎(chǔ)知識(shí)學(xué)習(xí)(四)

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

    piglei 評(píng)論0 收藏0
  • PhoneGap極光推送 cordova消息推送

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

    Taste 評(píng)論0 收藏0
  • ThinkPHP空操作、空控制器處理

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

    suxier 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<