整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          「Infragistics教程」在javascript中密封、凍結和防止對象擴展

          現(xiàn)代的JavaScript中,對象是不可分割的,對對象周圍的主題有很強的理解是編寫更好的JavaScript所必需的。您可以用JavaScript以四種方式創(chuàng)建對象。

          一旦知道如何創(chuàng)建對象,您可能希望了解對象屬性描述符。綜上所述,假設您有一個對象——cat:


          var cat = {

          name: 'foo',

          age: 9

          }

          每個對象屬性包含的信息不僅僅是一個值。例如,可以使用object.getownPropertyDescriptor方法打印其他屬性信息。

          1

          console.log(Object.getOwnPropertyDescriptor(cat, 'name'));

          在控制臺上,可以看到屬性名提供了更多信息:



          很明顯,如果將writable設置為true,則可以重寫屬性值等。您可以在此處閱讀有關javascript對象屬性描述符的更多信息。

          到目前為止,您已經了解了對象屬性描述符,因此如果需要將屬性設置為只讀,您將把該屬性設置為可寫。


          Object.defineProperty(cat, 'name', { writable: false });

          下一步,讓我們討論一下更改JavaScript對象默認行為的更多要求。

          防止對象具有新屬性

          除要求1外,將所有可配置的屬性標記為假

          除了要求2之外,還應使所有屬性都可寫為false

          從ECMA 6開始,您有實現(xiàn)上述要求的方法。讓我們一個接一個地拿著:

          Object.preventExtensions

          比如說,你有一個對象——cat:


          var cat = {

          name: 'foo',

          age: 9

          }

          使用默認行為,您可以向JavaScript對象添加屬性。因此,可以進行以下操作:


          cat.color = 'black';

          console.log(cat.color); // black

          要防止默認行為在對象中動態(tài)添加屬性,需要使用object.preventextensions()。此方法阻止對象添加新屬性。


          Object.preventExtensions(cat);

          cat.color = 'black';

          console.log(cat.color); // undefined

          在對象上使用object.preventextensions之后,如果添加新的屬性顏色,javascript將忽略它,并且作為輸出,您將得到未定義的。

          如果javascript處于嚴格模式,則如果向不可擴展的對象添加新屬性,則會出現(xiàn)錯誤。


          'use strict'

          var cat = {

          name: 'foo',

          age: 9

          }

          Object.preventExtensions(cat);

          cat.color = 'black';

          console.log(cat.color); // error thrown

          在嚴格模式下,您將收到一個錯誤,消息傳遞非常清楚,即“cannot add property, object is not extensible”



          總而言之,您應該使用object.preventextensions方法來防止向對象添加新屬性。

          Object.seal

          假設你想封一個物體,意思是:

          • 您應該無法添加新屬性(調用object.preventextensions())
          • 不應更改任何配置(將可配置屬性設置為false)

          可以使用object.seal()方法密封對象。讓我們再次考慮一個對象——cat:


          var cat = {

          name: 'foo',

          age: 9

          }

          您不希望將新屬性添加到cat中,并且所有屬性的可配置性都應設置為false。可以使用object.seal()方法執(zhí)行此操作:


          Object.seal(cat);

          cat.color = 'black';

          console.log(cat.color); // undefined

          console.log(Object.getOwnPropertyDescriptor(cat, 'name'));

          因為您有一個密封的對象作為輸出,所以您將得到未定義和可配置的設置為false。



          總而言之,應該使用object.seal()來密封對象。您將無法添加新屬性,并且將配置設置為“false”。

          Object.freeze

          假設你想凍結一個物體,意思是:

          • 您應該無法添加新的屬性,這意味著調用object.preventextensions()。
          • 不應更改任何配置(將屬性的configurable設置為false)
          • 對于所有屬性,writable應設置為false。

          可以使用object.freeze()方法凍結對象。它本質上調用object.seal()方法,并將可寫屬性設置為false。

          讓我們考慮一個對象——cat:


          var cat = {

          name: 'foo',

          age: 9

          }

          不應將新屬性添加到對象中,所有屬性的可配置性應設置為false,屬性的可寫性應設置為false。可以使用object.freeze()方法執(zhí)行此操作:


          Object.freeze(cat);

          cat.age = 10;

          cat.color = 'black';

          console.log(cat.age); //9

          console.log(cat.color); // undefined

          console.log(Object.getOwnPropertyDescriptor(cat, 'name'));

          由于您已經凍結了對象,作為輸出,您將得到未定義、9和可配置和可寫設置為false。



          總而言之,應該使用object.freeze()凍結對象。一旦凍結對象,就不能添加新屬性或重寫屬性值,而configurable將設置為false。

          總結

          在使用JavaScript中的對象時,您需要對創(chuàng)建對象的不同方法有很強的理解。非常需要屬性描述符、object.seal、object.preventextensions和object.freeze。希望你現(xiàn)在能更好地理解這些概念。

          點擊“了解更多”下載產品最新版

          ↓↓↓

          、定義

          <meta> 標簽提供關于 HTML 文檔的元數據。它不會顯示在頁面上,但是對于機器是可讀的。可用于瀏覽器(如何顯示內容或重新加載頁面),搜索引擎(關鍵詞),或其他 web 服務。

          2、作用

          meta里的數據是供機器解讀的,告訴機器該如何解析這個頁面,還有一個用途是可以添加服務器發(fā)送到瀏覽器的http頭部內容,例如我們?yōu)轫撁嬷刑砑尤缦耺eta標簽:


          1. <meta http-equiv="charset" content="iso-8859-1">
          2. <meta http-equiv="expires" content="31 Dec 2008">

          瀏覽器的頭部就會包括這些:


          1. charset:iso-8859-1
          2. expires:31 Dec 2008

          只有瀏覽器可以接受這些附加的頭部字段,并能以適當的方式使用它們時,這些字段才有意義。

          3、meta的必需屬性和可選屬性

          meta的必需屬性是content,當然并不是說meta標簽里一定要有content,而是當有http-equiv或name屬性的時候,一定要有content屬性對其進行說明。例如:

          必需屬性

          <meta name="keywords" content="HTML,ASP,PHP,SQL">

          這里面content里的屬性就是對keywords進行的說明,所以呢也可以理解成一個鍵值對吧,就是{keywords:"HTML,ASP,PHP,SQL"}。

          可選屬性

          在W3school中,對于meta的可選屬性說到了三個,分別是http-equiv、name和scheme。考慮到scheme不是很常用,所以就只說下前兩個屬性吧。

          http-equiv

          http-equiv屬性是添加http頭部內容,對一些自定義的,或者需要額外添加的http頭部內容,需要發(fā)送到瀏覽器中,我們就可以是使用這個屬性。在上面的meta作用中也有簡單的說明,那么現(xiàn)在再舉個例子。例如我們不想使用js來重定向,用http頭部內容控制,那么就可以這樣控制:

          <meta http-equiv="Refresh" content="5;url=http://blog.yangchen123h.cn" />

          在頁面中加入這個后,5秒鐘后就會跳轉到指定頁面啦,效果可看W3school的例子

          name

          第二個可選屬性是name,這個屬性是供瀏覽器進行解析,對于一些瀏覽器兼容性問題,name屬性是最常用的,當然有個前提就是瀏覽器能夠解析你寫進去的name屬性才可以,不然就是沒有意義的。還是舉個例子吧:

          <meta name="renderer" content="webkit">

          這個meta標簽的意思就是告訴瀏覽器,用webkit內核進行解析,當然前提是瀏覽器有webkit內核才可以,不然就是沒有意義的啦。當然看到這個你可能會有疑問,這個renderer是從哪里冒出來的,我要怎么知道呢?這個就是在對應的瀏覽器的開發(fā)文檔里就會有表明的,例如這個renderer是在360瀏覽器里說明的。360瀏覽器內核控制Meta標簽說明文檔

          常用meta標簽大總結

          接下來就是常用的meta標簽大總結啦,我會盡可能的做到全

          charset

          charset是聲明文檔使用的字符編碼,解決亂碼問題主要用的就是它,值得一提的是,這個charset一定要寫第一行,不然就可能會產生亂碼了。

          charset有兩種寫法


          1. <meta charset="utf-8">
          2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

          兩個都是等效的。

          百度禁止轉碼

          百度會自動對網頁進行轉碼,這個標簽是禁止百度的自動轉碼

          <meta http-equiv="Cache-Control" content="no-siteapp" />

          SEO 優(yōu)化部分


          1. <!-- 頁面標題<title>標簽(head 頭部必須) -->
          2. <title>your title</title>
          3. <!-- 頁面關鍵詞 keywords -->
          4. <meta name="keywords" content="your keywords">
          5. <!-- 頁面描述內容 description -->
          6. <meta name="description" content="your description">
          7. <!-- 定義網頁作者 author -->
          8. <meta name="author" content="author,email address">
          9. <!-- 定義網頁搜索引擎索引方式,robotterms 是一組使用英文逗號「,」分割的值,通常有如下幾種取值:none,noindex,nofollow,all,index和follow。 -->
          10. <meta name="robots" content="index,follow">

          viewport

          viewport主要是影響移動端頁面布局的,例如:


          1. <meta name="viewport" content="width=device-width, initial-scale=1.0">

          content 參數:

          • width viewport 寬度(數值/device-width)
          • height viewport 高度(數值/device-height)
          • initial-scale 初始縮放比例
          • maximum-scale 最大縮放比例
          • minimum-scale 最小縮放比例
          • user-scalable 是否允許用戶縮放(yes/no)

          各瀏覽器平臺

          Microsoft Internet Explorer


          1. <!-- 優(yōu)先使用最新的ie版本 -->
          2. <meta http-equiv="x-ua-compatible" content="ie=edge">
          3. <!-- 是否開啟cleartype顯示效果 -->
          4. <meta http-equiv="cleartype" content="on">
          5. <meta name="skype_toolbar" content="skype_toolbar_parser_compatible">
          6. <!-- Pinned Site -->
          7. <!-- IE 10 / Windows 8 -->
          8. <meta name="msapplication-TileImage" content="pinned-tile-144.png">
          9. <meta name="msapplication-TileColor" content="#009900">
          10. <!-- IE 11 / Windows 9.1 -->
          11. <meta name="msapplication-config" content="ieconfig.xml">

          Google Chrome


          1. <!-- 優(yōu)先使用最新的chrome版本 -->
          2. <meta http-equiv="X-UA-Compatible" content="chrome=1" />
          3. <!-- 禁止自動翻譯 -->
          4. <meta name="google" value="notranslate">

          360瀏覽器


          1. <!-- 選擇使用的瀏覽器解析內核 -->
          2. <meta name="renderer" content="webkit|ie-comp|ie-stand">

          UC手機瀏覽器

          UCBrowser_U3_API

          QQ手機瀏覽器


          1. <!-- 鎖定屏幕在特定方向 -->
          2. <meta name="x5-orientation" content="landscape/portrait">
          3. <!-- 全屏顯示 -->
          4. <meta name="x5-fullscreen" content="true">
          5. <!-- 頁面將以應用模式顯示 -->
          6. <meta name="x5-page-mode" content="app">

          Apple iOS


          1. <!-- Smart App Banner -->
          2. <meta name="apple-itunes-app" content="app-id=APP_ID,affiliate-data=AFFILIATE_ID,app-argument=SOME_TEXT">
          3. <!-- 禁止自動探測并格式化手機號碼 -->
          4. <meta name="format-detection" content="telephone=no">
          5. <!-- Add to Home Screen添加到主屏 -->
          6. <!-- 是否啟用 WebApp 全屏模式 -->
          7. <meta name="apple-mobile-web-app-capable" content="yes">
          8. <!-- 設置狀態(tài)欄的背景顏色,只有在 “apple-mobile-web-app-capable” content=”yes” 時生效 -->
          9. <meta name="apple-mobile-web-app-status-bar-style" content="black">
          10. <!-- 添加到主屏后的標題 -->
          11. <meta name="apple-mobile-web-app-title" content="App Title">

          Google Android


          1. <meta name="theme-color" content="#E64545">
          2. <!-- 添加到主屏 -->
          3. <meta name="mobile-web-app-capable" content="yes">
          4. <!-- More info: https://developer.chrome.com/multidevice/android/installtohomescreen -->

          App Links


          1. <!-- iOS -->
          2. <meta property="al:ios:url" content="applinks://docs">
          3. <meta property="al:ios:app_store_id" content="12345">
          4. <meta property="al:ios:app_name" content="App Links">
          5. <!-- Android -->
          6. <meta property="al:android:url" content="applinks://docs">
          7. <meta property="al:android:app_name" content="App Links">
          8. <meta property="al:android:package" content="org.applinks">
          9. <!-- Web Fallback -->
          10. <meta property="al:web:url" content="http://applinks.org/documentation">
          11. <!-- More info: http://applinks.org/documentation/ -->

          最后——移動端常用的meta


          1. <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
          2. <meta name="apple-mobile-web-app-capable" content="yes" />
          3. <meta name="apple-mobile-web-app-status-bar-style" content="black" />
          4. <meta name="format-detection"content="telephone=no, email=no" />
          5. <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
          6. <meta name="apple-mobile-web-app-capable" content="yes" /><!-- 刪除蘋果默認的工具欄和菜單欄 -->
          7. <meta name="apple-mobile-web-app-status-bar-style" content="black" /><!-- 設置蘋果工具欄顏色 -->
          8. <meta name="format-detection" content="telphone=no, email=no" /><!-- 忽略頁面中的數字識別為電話,忽略email識別 -->
          9. <!-- 啟用360瀏覽器的極速模式(webkit) -->
          10. <meta name="renderer" content="webkit">
          11. <!-- 避免IE使用兼容模式 -->
          12. <meta http-equiv="X-UA-Compatible" content="IE=edge">
          13. <!-- 針對手持設備優(yōu)化,主要是針對一些老的不識別viewport的瀏覽器,比如黑莓 -->
          14. <meta name="HandheldFriendly" content="true">
          15. <!-- 微軟的老式瀏覽器 -->
          16. <meta name="MobileOptimized" content="320">
          17. <!-- uc強制豎屏 -->
          18. <meta name="screen-orientation" content="portrait">
          19. <!-- QQ強制豎屏 -->
          20. <meta name="x5-orientation" content="portrait">
          21. <!-- UC強制全屏 -->
          22. <meta name="full-screen" content="yes">
          23. <!-- QQ強制全屏 -->
          24. <meta name="x5-fullscreen" content="true">
          25. <!-- UC應用模式 -->
          26. <meta name="browsermode" content="application">
          27. <!-- QQ應用模式 -->
          28. <meta name="x5-page-mode" content="app">
          29. <!-- windows phone 點擊無高光 -->
          30. <meta name="msapplication-tap-highlight" content="no">
          31. <!-- 適應移動端end -->

          頻影像凍結幀后變成一份報紙的頁面,創(chuàng)意的效果令人印象深刻

          壓縮包內含視頻教程,可以學習到這里凍結幀的制作方法

          視頻預覽

          https://v.qq.com/x/page/l3000iw53lp.html

          圖片預覽

          【版本要求】建議使用 AE CS6 或更高的AE版本打開

          【插件要求】該AE模板不需要任何第三方插件

          【模板尺寸】1920*1080

          【時間長度】1:20

          【文件大小】30.8M

          點擊了解更多,免費獲取該模板


          主站蜘蛛池模板: 无码毛片一区二区三区视频免费播放 | 国产一区二区福利| 亚洲天堂一区二区| 日本一区二区三区精品中文字幕| 超清无码一区二区三区| 东京热无码av一区二区| 国产福利视频一区二区| 久久无码AV一区二区三区| 亚洲综合在线一区二区三区| 国产日韩精品视频一区二区三区| 搜日本一区二区三区免费高清视频| 国产精品 一区 在线| 无码精品人妻一区二区三区免费| 97久久精品无码一区二区天美| 免费视频精品一区二区| 香蕉久久AⅤ一区二区三区 | 久久精品国产亚洲一区二区三区 | 伊人久久精品无码av一区| 天天爽夜夜爽人人爽一区二区| 一区二区国产在线观看| 日产精品久久久一区二区| 无码视频一区二区三区| 国产一区二区视频在线播放| 亚洲av乱码一区二区三区香蕉| 日本精品一区二区三区四区| 日韩在线不卡免费视频一区| 日本一区二区三区在线视频观看免费| 亚洲一区无码中文字幕| 国内精品视频一区二区三区八戒 | 亚洲一区二区三区四区在线观看| 好爽毛片一区二区三区四无码三飞| 一区二区三区中文字幕| 国产福利微拍精品一区二区| 国产成人片视频一区二区| 精品深夜AV无码一区二区老年| 香蕉一区二区三区观| 无码一区二区三区免费视频| 久久精品视频一区| 一区二区三区免费在线观看| 亚洲变态另类一区二区三区| 久久精品一区二区|