重新表達(dá)的標(biāo)題為:The Concept of Object()
Sep 03, 2023 pm 11:49 PM使用內(nèi)置的 Object() 構(gòu)造函數(shù),我們可以動(dòng)態(tài)創(chuàng)建通用的空對(duì)象。事實(shí)上,如果你還記得第一章的開頭,這正是我們通過創(chuàng)建 cody 對(duì)象所做的事情。讓我們重新創(chuàng)建 cody 對(duì)象。
示例:sample69.html
<!DOCTYPE html><html lang="en"><body><script> var cody = new Object(); // Create an empty object with no properties. for (key in cody) { // Confirm that cody is an empty generic object. if (cody.hasOwnProperty(key)) { console.log(key); // Should not see any logs, because cody itself has no properties. } } </script></body></html>
在這里,我們所做的就是使用 Object()
構(gòu)造函數(shù)來創(chuàng)建一個(gè)名為 cody 的通用對(duì)象。您可以將 Object()
構(gòu)造函數(shù)視為一個(gè)千篇一律的工具,用于創(chuàng)建沒有預(yù)定義屬性或方法的空對(duì)象(當(dāng)然,從原型鏈繼承的對(duì)象除外)。
如果不是很明顯,Object()
構(gòu)造函數(shù)本身就是一個(gè)對(duì)象。也就是說,構(gòu)造函數(shù)基于從 Function
構(gòu)造函數(shù)創(chuàng)建的對(duì)象。這可能會(huì)令人困惑。請(qǐng)記住,與 Array
構(gòu)造函數(shù)一樣,Object
構(gòu)造函數(shù)只是吐出空白對(duì)象。是的,您可以創(chuàng)建您喜歡的所有空對(duì)象。但是,創(chuàng)建像 cody 這樣的空對(duì)象與使用預(yù)定義屬性創(chuàng)建自己的構(gòu)造函數(shù)有很大不同。確保您了解 cody 只是一個(gè)基于 Object()
構(gòu)造函數(shù)的空對(duì)象。要真正利用 JavaScript 的力量,您不僅需要學(xué)習(xí)如何從 Object()
創(chuàng)建空對(duì)象容器,還需要學(xué)習(xí)如何構(gòu)建您自己的對(duì)象“類”(Person()
),例如Object()
構(gòu)造函數(shù)本身。
Object()
參數(shù)
Object()
構(gòu)造函數(shù)采用一個(gè)可選參數(shù)。該參數(shù)是您想要?jiǎng)?chuàng)建的值。如果您未提供任何參數(shù),則將假定 null
或 undefined
構(gòu)造函數(shù)采用一個(gè)可選參數(shù)。該參數(shù)是您想要?jiǎng)?chuàng)建的值。如果您未提供任何參數(shù),則將假定 null
或 undefined
值。
示例:sample70.html
<!DOCTYPE html><html lang="en"><body><script> // Create an empty object with no properties. var cody1 = new Object(); var cody2 = new Object(undefined); var cody3 = new Object(null); console.log(typeof cody1, typeof cody2, typeof cody3); // Logs 'object object object'. </script></body></html>
如果將 null
或 undefined
之外的值傳遞給 Object
構(gòu)造函數(shù),則傳遞的值將被創(chuàng)建為對(duì)象。因此理論上,我們可以使用 null
或 undefined
之外的值傳遞給 Object
構(gòu)造函數(shù),則傳遞的值將被創(chuàng)建為對(duì)象。因此理論上,我們可以使用 Object()
構(gòu)造函數(shù)來創(chuàng)建任何其他具有構(gòu)造函數(shù)的本機(jī)對(duì)象。在下一個(gè)示例中,我就是這么做的。
示例:sample71.html
<!DOCTYPE html><html lang="en"><body><script> /* Use the Object() constructor to create string, number, array, function, Boolean, and regex objects. */ // The following logs confirm object creation. console.log(new Object('foo')); console.log(new Object(1)); console.log(new Object([])); console.log(new Object(function () { })); console.log(new Object(true)); console.log(new Object(/\bt[a-z]+\b/)); /* Creating string, number, array, function, Boolean, and regex object instances via the Object() constructor is really never done. I am just demonstrating that it can be done. */ </script></body></html>
Object()
屬性和方法
Object()
對(duì)象具有以下屬性(不包括繼承的屬性和方法):
屬性(Object.prototype;
):
原型
Object()
實(shí)例屬性和方法
Object()
對(duì)象實(shí)例具有以下屬性和方法(不包括繼承的屬性和方法):
實(shí)例屬性 (var myObject = {};
myObject.constructor;
):
構(gòu)造函數(shù)
實(shí)例方法 (var myObject = {};
myObject.toString();
):
hasOwnProperty()
isPrototypeOf()
propertyIsEnumerable()
toLocaleString()
toString()
valueOf()
原型鏈以Object.prototype
結(jié)尾,因此Object()
結(jié)尾,因此
Object()
使用“對(duì)象文字”創(chuàng)建
對(duì)象
var cody = {};
創(chuàng)建“對(duì)象文字”需要使用大括號(hào)實(shí)例化帶有或不帶有屬性的對(duì)象(
<!DOCTYPE html><html lang="en"><body><script> var cody = new Object(); cody.living = true; cody.age = 33; cody.gender = 'male'; cody.getGender = function () { return cody.gender; }; console.log(cody); // Logs cody object and properties. </script></body></html>
cody
對(duì)象及其屬性需要五個(gè)語句。使用對(duì)象文字表示法,我們可以在一條語句中表達(dá)相同的 cody
請(qǐng)注意,代碼中創(chuàng)建 對(duì)象。示例:sample73.html
<!DOCTYPE html><html lang="en"><body><script> var cody = { living: true, age: 23, gender: 'male', getGender: function () { return cody.gender; } }; // Notice the last property has no comma after it. console.log(cody); // Logs the cody object and its properties. </script> </body>
:
和 ,
使用文字表示法使我們能夠使用更少的代碼創(chuàng)建對(duì)象(包括定義的屬性)并直觀地封裝相關(guān)數(shù)據(jù)。請(qǐng)注意在單個(gè)語句中使用 運(yùn)算符。由于其簡(jiǎn)潔性和可讀性,這實(shí)際上是在 JavaScript 中創(chuàng)建對(duì)象的首選語法。您應(yīng)該知道屬性名稱也可以指定為字符串:
示例:sample74.html
<!DOCTYPE html><html lang="en"><body><script> var cody = { 'living': true, 'age': 23, 'gender': 'male', 'getGender': function () { return cody.gender; } }; console.log(cody); // Logs the cody object and its properties. </script> </body>沒有必要將屬性指定為字符串,除非屬性名稱:
-
class
是保留關(guān)鍵字之一( )。 - 包含空格或特殊字符(數(shù)字、字母、美元符號(hào) ($) 或下劃線 (_) 字符以外的任何字符)。
- 以數(shù)字開頭。
小心!對(duì)象的最后一個(gè)屬性不應(yīng)有尾隨逗號(hào)。這會(huì)在某些 JavaScript 環(huán)境中導(dǎo)致錯(cuò)誤。
Object.prototype
所有對(duì)象繼承自
Object()
構(gòu)造函數(shù)比較特殊,因?yàn)樗?code>prototypeJavaScript中的
在以下示例中,我使用 foo
屬性擴(kuò)充 Object.prototype
,然后創(chuàng)建一個(gè)字符串并嘗試訪問 foo
屬性,就好像它是字符串實(shí)例的屬性一樣。由于 myString
實(shí)例沒有 foo
屬性,因此原型鏈啟動(dòng)并在 String.prototype
中查找值。它不在那里,所以下一個(gè)要查找的位置是 Object.prototype
,這是 JavaScript 查找對(duì)象值的最終位置。找到了 foo
值,因?yàn)槲姨砑恿怂?,因此它返?foo
的值。
示例:sample75.html
<!DOCTYPE html><html lang="en"><body><script> Object.prototype.foo = 'foo'; var myString = 'bar'; // Logs 'foo', being found at Object.prototype.foo via the prototype chain. console.log(myString.foo); </script> </body>
結(jié)論
小心!添加到 Object.prototype
的任何內(nèi)容都將顯示在 for in
循環(huán)和原型鏈中。因此,據(jù)說禁止更改 Object.prototype
。
以上是重新表達(dá)的標(biāo)題為:The Concept of Object()的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣服圖片

Undresser.AI Undress
人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機(jī)

Video Face Swap
使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級(jí)代碼編輯軟件(SublimeText3)

要回滾WordPress版本,可使用插件或手動(dòng)替換核心文件,并禁用自動(dòng)更新。1.使用WPDowngrade等插件輸入目標(biāo)版本號(hào)即可自動(dòng)下載替換;2.手動(dòng)下載舊版WordPress并通過FTP替換wp-includes、wp-admin等文件但保留wp-config.php和wp-content;3.在wp-config.php中添加代碼或使用過濾器禁用核心自動(dòng)更新以防止再次升級(jí)。操作前務(wù)必備份網(wǎng)站和數(shù)據(jù)庫,確保安全可靠。長(zhǎng)期建議保持最新版以保障安全性與功能支持。

在WordPress中創(chuàng)建自定義短代碼的步驟如下:1.通過functions.php文件或自定義插件編寫PHP函數(shù);2.使用add_shortcode()將函數(shù)綁定到短代碼標(biāo)簽;3.在函數(shù)中處理參數(shù)并返回輸出內(nèi)容。例如,創(chuàng)建按鈕短代碼時(shí)可定義顏色和鏈接參數(shù),實(shí)現(xiàn)靈活配置。使用時(shí)可在編輯器中插入類似[buttoncolor="red"url="https://example.com"]點(diǎn)擊這里[/button]的標(biāo)簽,并可通過do_shortcode()在模

WordPress導(dǎo)致服務(wù)器CPU使用率飆升的主要原因包括插件問題、數(shù)據(jù)庫查詢效率低、主題代碼質(zhì)量差或流量激增。1.首先通過top、htop或控制面板工具確認(rèn)是否為WordPress引起的高負(fù)載;2.進(jìn)入故障排查模式逐步啟用插件排查性能瓶頸,使用QueryMonitor分析插件執(zhí)行情況并刪除或替換低效插件;3.安裝緩存插件、清理冗余數(shù)據(jù)、分析慢查詢?nèi)罩疽詢?yōu)化數(shù)據(jù)庫;4.檢查主題是否存在過度加載內(nèi)容、復(fù)雜查詢或缺乏緩存機(jī)制等問題,建議用標(biāo)準(zhǔn)主題測(cè)試對(duì)比并優(yōu)化代碼邏輯。按照上述步驟逐一排查可定位并解

優(yōu)化WordPress站點(diǎn)不依賴插件的方法包括:1.使用輕量級(jí)主題,如Astra或GeneratePress,避免功能堆砌的主題;2.手動(dòng)壓縮和合并CSS、JS文件,減少HTTP請(qǐng)求;3.上傳前優(yōu)化圖片,使用WebP格式并控制文件大??;4.配置.htaccess啟用瀏覽器緩存,并接入CDN提升靜態(tài)資源加載速度;5.限制文章修訂版本并定期清理數(shù)據(jù)庫冗余數(shù)據(jù)。

MinifyingJavaScript文件可通過刪除空白、注釋和無用代碼來提升WordPress網(wǎng)站加載速度。1.使用支持合并壓縮的緩存插件如W3TotalCache,在“Minify”選項(xiàng)中啟用并選擇壓縮模式;2.使用專用壓縮插件如FastVelocityMinify,提供更精細(xì)控制;3.手動(dòng)壓縮JS文件并通過FTP上傳,適用于熟悉開發(fā)工具的用戶。注意部分主題或插件腳本可能與壓縮功能沖突,啟用后需徹底測(cè)試網(wǎng)站功能。

TransientsAPI是WordPress中用于臨時(shí)存儲(chǔ)可自動(dòng)過期數(shù)據(jù)的內(nèi)置工具,其核心函數(shù)為set_transient、get_transient和delete_transient。相比OptionsAPI,transients支持設(shè)置生存時(shí)間(TTL),適合緩存API請(qǐng)求結(jié)果、復(fù)雜計(jì)算數(shù)據(jù)等場(chǎng)景。使用時(shí)需注意key命名唯一性與命名空間、緩存“懶刪除”機(jī)制及對(duì)象緩存環(huán)境下可能不持久的問題。典型應(yīng)用場(chǎng)景包括減少外部請(qǐng)求頻率、控制代碼執(zhí)行節(jié)奏和提升頁面加載性能。

對(duì)象緩存可輔助持久存儲(chǔ),適用于高訪問低更新、可容忍短暫丟失的數(shù)據(jù)。1.適合用緩存“持久化”的數(shù)據(jù)包括用戶配置、熱門商品信息等,能從數(shù)據(jù)庫恢復(fù)但使用緩存可加速訪問。2.選擇Redis等支持持久化的緩存后端,啟用RDB或AOF模式,并配置合理過期策略,但不能替代主數(shù)據(jù)庫。3.設(shè)置長(zhǎng)TTL或永不過期鍵,采用清晰鍵名結(jié)構(gòu)如user:1001:profile,修改數(shù)據(jù)時(shí)同步更新緩存。4.可結(jié)合本地與分布式緩存,本地存小數(shù)據(jù)、Redis存大數(shù)據(jù)并用于重啟后恢復(fù),同時(shí)注意一致性與資源占用問題。

PluginCheck是一個(gè)幫助WordPress用戶快速檢查插件兼容性和性能的工具,主要用來識(shí)別當(dāng)前安裝的插件是否存在與最新版本W(wǎng)ordPress不兼容、存在安全漏洞等問題。1.如何開始檢查?安裝激活后,在后臺(tái)點(diǎn)擊“RunaScan”按鈕即可自動(dòng)掃描所有插件;2.報(bào)告包含插件名稱、檢測(cè)類型、問題描述及解決方案建議,便于優(yōu)先處理嚴(yán)重問題;3.建議在更新WordPress前、網(wǎng)站異常時(shí)或定期運(yùn)行檢查,提前發(fā)現(xiàn)隱患,避免未來出現(xiàn)重大問題。
