国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
讓我們建立一個(gè)物件
定義方法和屬性
建構(gòu)子版本:
文字版本:
現(xiàn)在來(lái)看看差異:
使用建構(gòu)子。
實(shí)例化或不實(shí)例化
這個(gè)和那個(gè)
現(xiàn)實(shí)世界的用法:表單驗(yàn)證對(duì)象
結(jié)論
首頁(yè) CMS教程 &#&按 JavaScript的物件導(dǎo)向基礎(chǔ)知識(shí)

JavaScript的物件導(dǎo)向基礎(chǔ)知識(shí)

Sep 02, 2023 am 11:21 AM
javascript 物件導(dǎo)向 基礎(chǔ)知識(shí)

近年來(lái),JavaScript 越來(lái)越受歡迎,部分原因是開(kāi)發(fā)了一些程式庫(kù),使尚未完全掌握核心語(yǔ)言的人更容易創(chuàng)建 JavaScript 應(yīng)用程式/效果。

雖然在過(guò)去,人們普遍認(rèn)為JavaScript 是一種基礎(chǔ)語(yǔ)言,而且非?!安萋省?,沒(méi)有真正的基礎(chǔ);但現(xiàn)在情況已不再如此,尤其是隨著大規(guī)模Web 應(yīng)用程式和JSON(JavaScript 對(duì)象表示法)等「適應(yīng)」的引入。

JavaScript 可以擁有物件導(dǎo)向語(yǔ)言所提供的所有功能,儘管需要付出一些超出本文討論範(fàn)圍的額外工作。

讓我們建立一個(gè)物件

    function myObject(){
    
    };

恭喜,您剛剛建立了一個(gè)物件。建立 JavaScript 物件有兩種方法:「建構(gòu)函數(shù)」和「文字表示法」。上面的函數(shù)是一個(gè)建構(gòu)函數(shù),我很快就會(huì)解釋其中的區(qū)別,但在此之前,這是使用文字表示法的物件定義的樣子。

    var myObject = {
    
    };

文字是名稱間距的首選選項(xiàng),因此您的JavaScript 程式碼就不會(huì)幹?jǐn)_(反之亦然)頁(yè)面上執(zhí)行的其他腳本,並且如果您將此物件用作單個(gè)物件並且不需要多個(gè)物件物件的實(shí)例,而如果您需要在建立物件之前執(zhí)行一些初始工作,或者需要物件的多個(gè)實(shí)例(其中每個(gè)實(shí)例都可以在腳本的生命週期內(nèi)變更),則首選建構(gòu)函式類型表示法。讓我們繼續(xù)同時(shí)建構(gòu)兩個(gè)對(duì)象,以便我們可以觀察差異。

定義方法和屬性

建構(gòu)子版本:

    function myObject(){
        this.iAm = 'an object';
        this.whatAmI = function(){
            alert('I am ' + this.iAm);
        };
    };

文字版本:

    var myObject = {
        iAm : 'an object',
        whatAmI : function(){
            alert('I am ' + this.iAm);
        }
    }

對(duì)於每個(gè)對(duì)象,我們建立了一個(gè)屬性“iAm”,其中包含一個(gè)字串值,該字串值在我們的對(duì)象方法“whatAmI”中使用,該方法會(huì)發(fā)出警報(bào)訊息。

屬性是在物件內(nèi)部創(chuàng)建的變量,方法是在物件內(nèi)部創(chuàng)建的函數(shù)。

現(xiàn)在可能是解釋如何使用屬性和方法的最佳時(shí)機(jī)(儘管如果您熟悉庫(kù),您可能已經(jīng)這樣做了)。

要使用屬性,首先要輸入它所屬的物件- 因此在本例中是myObject - 然後要引用其內(nèi)部屬性,請(qǐng)先加上句號(hào),然後輸入屬性名稱,這樣它最終看起來(lái)會(huì)像myObject . iAm(這將傳回「一個(gè)物件」)。

對(duì)於方法來(lái)說(shuō),除了執(zhí)行方法之外,都是一樣的,就像任何函數(shù)一樣,必須在其後面加上括號(hào);否則,您將只傳回對(duì)函數(shù)的引用,而不是函數(shù)實(shí)際傳回的內(nèi)容。所以它看起來(lái)像 myObject.whatAmI() (這會(huì)提醒「我是一個(gè)物件」)。

現(xiàn)在來(lái)看看差異:

  • 建構(gòu)函數(shù)物件的屬性和方法是在其前面使用關(guān)鍵字「this」定義的,而字面版本則沒(méi)有。
  • 在建構(gòu)函數(shù)物件中,屬性/方法的「值」在等號(hào)「=」之後定義,而在字面版本中,它們?cè)诿疤?hào)「:」之後定義。
  • 建構(gòu)函數(shù)可以有(可選)分號(hào)“;”在每個(gè)屬性/方法聲明的末尾,而在字面版本中,如果您有多個(gè)屬性或方法,則它們必須用逗號(hào)“,”分隔,而且它們後面不能有分號(hào),否則JavaScript 會(huì)回傳錯(cuò)誤。

這兩種類型的物件宣告的使用方式也存在差異。

要使用字面上標(biāo)註的對(duì)象,您只需透過(guò)引用其變數(shù)名稱來(lái)使用它,因此無(wú)論何時(shí)需要它,您都可以透過(guò)鍵入來(lái)呼叫它;

    myObject.whatAmI();

使用建構(gòu)函數(shù),您需要先實(shí)例化(建立物件的新實(shí)例);您可以透過(guò)輸入來(lái)完成此操作;

    var myNewObject = new myObject();
    myNewObject.whatAmI();

使用建構(gòu)子。

讓我們使用先前的構(gòu)造函數(shù)並在其基礎(chǔ)上進(jìn)行構(gòu)建,以便在實(shí)例化它時(shí)執(zhí)行一些基本(但動(dòng)態(tài))操作。

    function myObject(){
        this.iAm = 'an object';
        this.whatAmI = function(){
            alert('I am ' + this.iAm);
        };
    };

就像任何 JavaScript 函數(shù)一樣,我們可以在建構(gòu)函式中使用參數(shù);

function myObject(what){
	this.iAm = what;
	this.whatAmI = function(language){
		alert('I am ' + this.iAm + ' of the ' + language + ' language');
	};
};

現(xiàn)在讓我們實(shí)例化我們的物件並呼叫它的 WhatAmI 方法,同時(shí)填寫所需的欄位。

    var myNewObject = new myObject('an object');
    myNewObject.whatAmI('JavaScript');

這將警告「我是 JavaScript 語(yǔ)言的物件。」

實(shí)例化或不實(shí)例化

我之前提到過(guò)對(duì)象構(gòu)造函數(shù)和對(duì)象文字之間的差異,當(dāng)對(duì)對(duì)象文字進(jìn)行更改時(shí),它會(huì)影響整個(gè)腳本中的該對(duì)象,而當(dāng)構(gòu)造函數(shù)被實(shí)例化然後對(duì)其進(jìn)行更改時(shí)實(shí)例,它不會(huì)影響該物件的任何其他實(shí)例。讓我們嘗試一個(gè)例子;

首先我們將建立一個(gè)物件文字;

	var myObjectLiteral = {
    	myProperty : 'this is a property'
    }
    
    //alert current myProperty
    alert(myObjectLiteral.myProperty); //this will alert 'this is a property'
    
    //change myProperty
    myObjectLiteral.myProperty = 'this is a new property';
    
    //alert current myProperty
    alert(myObjectLiteral.myProperty); //this will alert 'this is a new property', as expected

即使您建立新變數(shù)並將其指向該對(duì)象,也會(huì)產(chǎn)生相同的效果。

	var myObjectLiteral = {
    	myProperty : 'this is a property'
    }
    
    //alert current myProperty
    alert(myObjectLiteral.myProperty); //this will alert 'this is a property'
    
    //define new variable with object as value
    var sameObject = myObjectLiteral;
    
    //change myProperty
    myObjectLiteral.myProperty = 'this is a new property';
    
    //alert current myProperty
    alert(sameObject.myProperty); //this will still alert 'this is a new property'

現(xiàn)在讓我們嘗試使用建構(gòu)子進(jìn)行類似的練習(xí)。

	//this is one other way of creating a Constructor function
	var myObjectConstructor = function(){
    	this.myProperty = 'this is a property'
    }
    
    //instantiate our Constructor
    var constructorOne = new myObjectConstructor();
    
    //instantiate a second instance of our Constructor
    var constructorTwo = new myObjectConstructor();
    
    //alert current myProperty of constructorOne instance
    alert(constructorOne.myProperty); //this will alert 'this is a property'
     
     //alert current myProperty of constructorTwo instance
    alert(constructorTwo.myProperty); //this will alert 'this is a property'

正如預(yù)期的那樣,兩者都會(huì)傳回正確的值,但讓我們更改其中一個(gè)實(shí)例的 myProperty。

	//this is one other way of creating a Constructor function
	var myObjectConstructor = function(){
    	this.myProperty = 'this is a property'
    }
    
    //instantiate our Constructor
    var constructorOne = new myObjectConstructor();
    
    //change myProperty of the first instance
    constructorOne.myProperty = 'this is a new property';
    
    //instantiate a second instance of our Constructor
    var constructorTwo = new myObjectConstructor();
    
    //alert current myProperty of constructorOne instance
    alert(constructorOne.myProperty); //this will alert 'this is a new property'
     
     //alert current myProperty of constructorTwo instance
    alert(constructorTwo.myProperty); //this will still alert 'this is a property'

從這個(gè)示例中可以看出,即使我們更改了 constructorOne 的屬性,它也沒(méi)有影響 myObjectConstructor,因此也沒(méi)有影響 constructorTwo。即使在更改 constructorOne 的 myProperty 屬性之前實(shí)例化了 constructorTwo,它仍然不會(huì)影響 constructorTwo 的 myProperty 屬性,因?yàn)樗?JavaScript 內(nèi)存中完全不同的對(duì)象實(shí)例。

那么您應(yīng)該使用哪一個(gè)呢?好吧,這取決于情況,如果您的腳本只需要一個(gè)此類對(duì)象(正如您將在本文末尾的示例中看到的那樣),則使用對(duì)象文字,但如果您需要一個(gè)對(duì)象的多個(gè)實(shí)例,其中每個(gè)實(shí)例彼此獨(dú)立,并且根據(jù)其構(gòu)造方式可以具有不同的屬性或方法,然后使用構(gòu)造函數(shù)。

這個(gè)和那個(gè)

在解釋構(gòu)造函數(shù)時(shí),出現(xiàn)了很多“this”關(guān)鍵字,我想這是討論作用域的更好時(shí)機(jī)!

現(xiàn)在您可能會(huì)問(wèn)“您所說(shuō)的范圍是什么”? JavaScript 中的作用域是基于函數(shù)/對(duì)象的,因此這意味著如果您在函數(shù)之外,則無(wú)法使用在函數(shù)內(nèi)部定義的變量(除非您使用閉包)。

然而,存在作用域鏈,這意味著另一個(gè)函數(shù)內(nèi)的函數(shù)可以訪問(wèn)其父函數(shù)中定義的變量。讓我們看一些示例代碼。

<script type="text/javascript">

var var1 = 'this is global and is available to everyone';

function function1(){

	var var2 = 'this is only available inside function1 and function2';	
	
	function function2(){
	
		var var3 = 'this is only available inside function2';
	
	}		
	
}

</script>

正如你在這個(gè)例子中看到的, var1 是在全局對(duì)象中定義的,可用于所有函數(shù)和對(duì)象, var2 是在 function1 中定義的,可用于 function1 和 function2,但是如果你嘗試引用從全局對(duì)象中獲取它會(huì)給出錯(cuò)誤“var2 未定義”,var3 只能由 function2 訪問(wèn)。

那么“this”指的是什么呢?在瀏覽器中,“this”引用窗口對(duì)象,因此從技術(shù)上講,窗口是我們的全局對(duì)象。如果我們?cè)谝粋€(gè)對(duì)象內(nèi)部,“this”將引用該對(duì)象本身,但是如果您在一個(gè)函數(shù)內(nèi)部,這仍然會(huì)引用窗口對(duì)象,同樣,如果您在一個(gè)對(duì)象內(nèi)的方法內(nèi)部,“ this' 將引用該對(duì)象。

由于我們的作用域鏈,如果我們位于子對(duì)象(對(duì)象內(nèi)的對(duì)象)內(nèi)部,“this”將引用子對(duì)象而不是父對(duì)象。

作為旁注,還值得補(bǔ)充的是,當(dāng)使用 setInterval、setTimeout 和 eval 等函數(shù)時(shí),當(dāng)您通過(guò)其中之一執(zhí)行函數(shù)或方法時(shí),“this”指的是 window 對(duì)象,因?yàn)檫@些是 window 的方法,所以 setInterval() 和 window.setInterval() 是相同的。

好吧,現(xiàn)在我們已經(jīng)解決了這個(gè)問(wèn)題,讓我們做一個(gè)真實(shí)的示例并創(chuàng)建一個(gè)表單驗(yàn)證對(duì)象!

現(xiàn)實(shí)世界的用法:表單驗(yàn)證對(duì)象

首先我必須向您介紹我們將創(chuàng)建的 addEvent 函數(shù),它是 ECMAScript 的(Firefox、Safari 等)addEventListener() 函數(shù)和 Microsoft ActiveX Script 的 AttachEvent() 函數(shù)的組合。

    function addEvent(to, type, fn){
        if(document.addEventListener){
            to.addEventListener(type, fn, false);
        } else if(document.attachEvent){
            to.attachEvent('on'+type, fn);
        } else {
            to['on'+type] = fn;
        }	
    };

這將創(chuàng)建一個(gè)具有三個(gè)參數(shù)的新函數(shù),to 是我們將事件附加到的 DOM 對(duì)象,type 是事件類型,fn 是觸發(fā)事件時(shí)運(yùn)行的函數(shù)。它首先檢查是否支持 addEventListener,如果支持,它將使用它,如果不支持,它將檢查 AttachEvent,如果其他所有方法都失敗,您可能正在使用 IE5 或同樣過(guò)時(shí)的東西,因此我們將事件直接添加到其事件屬性上(注意:第三個(gè)選項(xiàng)將覆蓋可能已附加到事件屬性的任何現(xiàn)有函數(shù),而前兩個(gè)選項(xiàng)會(huì)將其作為附加函數(shù)添加到其事件屬性中)。

現(xiàn)在讓我們?cè)O(shè)置我們的文檔,使其與您開(kāi)發(fā) jQuery 內(nèi)容時(shí)可能看到的類似。

在 jQuery 中你會(huì)有;

    $(document).ready(function(){
        //all our code that runs after the page is ready goes here
    });

使用我們的 addEvent 函數(shù);

    addEvent(window, 'load', function(){
		//all our code that runs after the page is ready goes here
	});

現(xiàn)在我們的 Form 對(duì)象。

var Form = {

	validClass : 'valid',
	
	fname : {
		minLength : 1,		
		maxLength : 15,	
		fieldName : 'First Name'
	},
    
	lname : {
		minLength : 1,		
		maxLength : 25,
		fieldName : 'Last Name'
	},
	
    
	validateLength : function(formEl, type){
		if(formEl.value.length > type.maxLength || formEl.value.length < type.minLength ){	
			formEl.className = formEl.className.replace(' '+Form.validClass, '');
			return false;
		} else {
			if(formEl.className.indexOf(' '+Form.validClass) == -1)
			formEl.className += ' '+Form.validClass;
			return true;
		}
	},
	
    
	validateEmail : function(formEl){
		var regEx = /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/;
		var emailTest = regEx.test(formEl.value);		 
		if (emailTest) {
			if(formEl.className.indexOf(' '+Form.validClass) == -1)			
			formEl.className += ' '+Form.validClass;            
			return true;
		} else {
			formEl.className = formEl.className.replace(' '+Form.validClass, '');
			return false;
		}			
	},		
	
	getSubmit : function(formID){    
		var inputs = document.getElementById(formID).getElementsByTagName('input');
		for(var i = 0; i < inputs.length; i++){
			if(inputs[i].type == 'submit'){
				return inputs[i];
			}		
		}		
		return false;
	}			
		
};

所以這是非?;镜?,但可以很容易地?cái)U(kuò)展。

為了解決這個(gè)問(wèn)題,我們首先創(chuàng)建一個(gè)新屬性,它只是“有效”CSS 類的字符串名稱,當(dāng)應(yīng)用于表單字段時(shí),會(huì)添加有效的效果,例如綠色邊框。我們還定義了兩個(gè)子對(duì)象,fnamelname,因此我們可以定義它們自己的屬性,這些屬性可以被其他地方的方法使用,這些屬性是minLength,這是這些字段可以擁有的最小字符數(shù), maxLength 是字段可以擁有的最大字符數(shù),而 fieldName 實(shí)際上并沒(méi)有被使用,但可以用于諸如在錯(cuò)誤消息中使用用戶友好的字符串識(shí)別字段之類的事情(例如“名字字段”)是必需的。')。

接下來(lái)我們創(chuàng)建一個(gè) validateLength 方法,它接受兩個(gè)參數(shù): formEl 要驗(yàn)證的 DOM 元素和 type ,它引用要使用的子對(duì)象之一(即 fname 或 lname)。該函數(shù)檢查字段的長(zhǎng)度是否在 minLength 和 maxLength 范圍之間,如果不是,那么我們從元素中刪除有效類(如果存在)并返回 false,否則如果是,那么我們添加有效類并返回正確。

然后我們有一個(gè) validateEmail 方法,它接受 DOM 元素作為參數(shù),然后我們根據(jù)電子郵件類型正則表達(dá)式測(cè)試這個(gè) DOM 元素值;如果通過(guò),我們?cè)俅翁砑游覀兊念惒⒎祷?true,反之亦然。

最后我們有一個(gè) getSubmit 方法。該方法獲得表單的 id,然后循環(huán)遍歷指定表單內(nèi)的所有輸入元素,以查找哪一個(gè)具有提交類型 (type="submit")。此方法的原因是返回提交按鈕,以便我們可以禁用它,直到表單準(zhǔn)備好提交。

讓我們讓這個(gè)驗(yàn)證器對(duì)象在真實(shí)的表單上工作。首先我們需要 HTML。

    <body>
    
    <form id="ourForm">
        <label>First Name</label><input type="text" /><br />
        <label>Last Name</label><input type="text" /><br />
        <label>Email</label><input type="text" /><br />
        <input type="submit" value="submit" />
    </form>
    
    </body>

現(xiàn)在讓我們使用 JavaScript 訪問(wèn)這些輸入對(duì)象,并在表單提交時(shí)驗(yàn)證它們。

addEvent(window, 'load', function(){
	
	
	var ourForm = document.getElementById('ourForm');	
	var submit_button = Form.getSubmit('ourForm');
	submit_button.disabled = 'disabled';
	
	function checkForm(){
		var inputs = ourForm.getElementsByTagName('input');
		if(Form.validateLength(inputs[0], Form.fname)){
			if(Form.validateLength(inputs[1], Form.lname)){
				if(Form.validateEmail(inputs[2])){ 					 
                     
						submit_button.disabled = false;
						return true;
										
				}
			}
		}
			
		submit_button.disabled = 'disabled';
		return false;
		
	};
	
	checkForm();		
	addEvent(ourForm, 'keyup', checkForm);
	addEvent(ourForm, 'submit', checkForm);
      
	
});

讓我們分解一下這段代碼。

我們將代碼包裝在 addEvent 函數(shù)中,以便在加載窗口時(shí)運(yùn)行此腳本。首先,我們使用表單 ID 獲取表單并將其放入名為 ourForm 的變量中,然后獲取提交按鈕(使用表單對(duì)象 getSubmit 方法)并將其放入名為 submit_button 的變量中,然后設(shè)置提交按鈕禁用屬性為“禁用”。

接下來(lái)我們定義一個(gè) checkForm 函數(shù)。這會(huì)將表單字段內(nèi)的所有輸入存儲(chǔ)為一個(gè)數(shù)組,并將其附加到一個(gè)名為..你猜對(duì)了的變量.. inputs!然后它定義了一些嵌套的 if 語(yǔ)句,這些語(yǔ)句根據(jù)我們的 Form 方法測(cè)試輸入數(shù)組內(nèi)的每個(gè)字段。這就是我們?cè)诜椒ㄖ蟹祷?true 或 false 的原因,因此如果它返回 true,我們將傳遞該 if 語(yǔ)句并繼續(xù)執(zhí)行下一個(gè),但如果它返回 false,我們將退出 if 語(yǔ)句。

根據(jù)我們的函數(shù)定義,我們?cè)陧?yè)面最初加載時(shí)執(zhí)行 checkForm 函數(shù),并將該函數(shù)附加到 keyup 事件和提交事件。

您可能會(huì)問(wèn),如果我們禁用了提交按鈕,為什么還要附加提交。好吧,如果您專注于輸入字段并按下 Enter 鍵,它將嘗試提交表單,我們需要對(duì)此進(jìn)行測(cè)試,因此我們的 checkForm 函數(shù)返回 true(提交表單)或 false(不提交)形式)。

結(jié)論

因此,我們學(xué)習(xí)了如何在 JavaScript 中定義不同的對(duì)象類型并在其中創(chuàng)建屬性和方法。我們還學(xué)習(xí)了一個(gè)漂亮的 addEvent 函數(shù),并在基本的現(xiàn)實(shí)示例中使用我們的對(duì)象。

這就是 JavaScript 面向?qū)ο蟮幕A(chǔ)知識(shí)。希望這可以讓您開(kāi)始構(gòu)建自己的 JavaScript 庫(kù)!如果您喜歡這篇文章并對(duì)其他 JavaScript 相關(guān)主題感興趣,請(qǐng)將它們發(fā)布在評(píng)論中,我很樂(lè)意繼續(xù)撰寫它們。感謝您的閱讀。

為什么不看看 CodeCanyon 上的 JavaScript 項(xiàng)目范圍。您可以找到用于創(chuàng)建滑塊、倒計(jì)時(shí)、加載器和上傳器等的腳本。

JavaScript的物件導(dǎo)向基礎(chǔ)知識(shí)

以上是JavaScript的物件導(dǎo)向基礎(chǔ)知識(shí)的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

簡(jiǎn)易JavaScript教學(xué):取得HTTP狀態(tài)碼的方法 簡(jiǎn)易JavaScript教學(xué):取得HTTP狀態(tài)碼的方法 Jan 05, 2024 pm 06:08 PM

JavaScript教學(xué):如何取得HTTP狀態(tài)碼,需要具體程式碼範(fàn)例前言:在Web開(kāi)發(fā)中,經(jīng)常會(huì)涉及到與伺服器進(jìn)行資料互動(dòng)的場(chǎng)景。在與伺服器進(jìn)行通訊時(shí),我們經(jīng)常需要取得傳回的HTTP狀態(tài)碼來(lái)判斷操作是否成功,並根據(jù)不同的狀態(tài)碼來(lái)進(jìn)行對(duì)應(yīng)的處理。本篇文章將教你如何使用JavaScript來(lái)取得HTTP狀態(tài)碼,並提供一些實(shí)用的程式碼範(fàn)例。使用XMLHttpRequest

如何在JavaScript中取得HTTP狀態(tài)碼的簡(jiǎn)單方法 如何在JavaScript中取得HTTP狀態(tài)碼的簡(jiǎn)單方法 Jan 05, 2024 pm 01:37 PM

JavaScript中的HTTP狀態(tài)碼取得方法簡(jiǎn)介:在進(jìn)行前端開(kāi)發(fā)中,我們常常需要處理與後端介面的交互,而HTTP狀態(tài)碼就是其中非常重要的一部分。了解並取得HTTP狀態(tài)碼有助於我們更好地處理介面?zhèn)骰氐馁Y料。本文將介紹使用JavaScript取得HTTP狀態(tài)碼的方法,並提供具體程式碼範(fàn)例。一、什麼是HTTP狀態(tài)碼HTTP狀態(tài)碼是指當(dāng)瀏覽器向伺服器發(fā)起請(qǐng)求時(shí),服務(wù)

PHP高階特性:物件導(dǎo)向程式設(shè)計(jì)的最佳實(shí)踐 PHP高階特性:物件導(dǎo)向程式設(shè)計(jì)的最佳實(shí)踐 Jun 05, 2024 pm 09:39 PM

PHP中OOP最佳實(shí)務(wù)包括命名約定、介面與抽象類別、繼承與多型、依賴注入。實(shí)戰(zhàn)案例包括:使用倉(cāng)庫(kù)模式管理數(shù)據(jù),使用策略模式實(shí)現(xiàn)排序。

Go語(yǔ)言的物件導(dǎo)向特性解析 Go語(yǔ)言的物件導(dǎo)向特性解析 Apr 04, 2024 am 11:18 AM

Go語(yǔ)言支援物件導(dǎo)向編程,透過(guò)struct定義對(duì)象,使用指標(biāo)接收器定義方法,並透過(guò)介面實(shí)現(xiàn)多態(tài)。物件導(dǎo)向特性在Go語(yǔ)言中提供了程式碼重用、可維護(hù)性和封裝,但也存在缺乏傳統(tǒng)類別和繼承的概念以及方法簽章強(qiáng)制型別轉(zhuǎn)換的限制。

探索Go語(yǔ)言中的物件導(dǎo)向編程 探索Go語(yǔ)言中的物件導(dǎo)向編程 Apr 04, 2024 am 10:39 AM

Go語(yǔ)言支援物件導(dǎo)向編程,透過(guò)型別定義和方法關(guān)聯(lián)實(shí)作。它不支援傳統(tǒng)繼承,而是透過(guò)組合實(shí)現(xiàn)。介面提供了類型間的一致性,允許定義抽象方法。實(shí)戰(zhàn)案例展示如何使用OOP管理客戶訊息,包括建立、取得、更新和刪除客戶操作。

Golang中有類似類別的物件導(dǎo)向特性嗎? Golang中有類似類別的物件導(dǎo)向特性嗎? Mar 19, 2024 pm 02:51 PM

在Golang(Go語(yǔ)言)中並沒(méi)有傳統(tǒng)意義上的類別的概念,但它提供了一種稱為結(jié)構(gòu)體的資料類型,透過(guò)結(jié)構(gòu)體可以實(shí)現(xiàn)類似類別的物件導(dǎo)向特性。在本文中,我們將介紹如何使用結(jié)構(gòu)體實(shí)現(xiàn)物件導(dǎo)向的特性,並提供具體的程式碼範(fàn)例。結(jié)構(gòu)體的定義和使用首先,讓我們來(lái)看看結(jié)構(gòu)體的定義和使用方式。在Golang中,結(jié)構(gòu)體可以透過(guò)type關(guān)鍵字定義,然後在需要的地方使用。結(jié)構(gòu)體中可以包含屬

PHP物件導(dǎo)向程式設(shè)計(jì)的深入理解:物件導(dǎo)向程式設(shè)計(jì)的除錯(cuò)技巧 PHP物件導(dǎo)向程式設(shè)計(jì)的深入理解:物件導(dǎo)向程式設(shè)計(jì)的除錯(cuò)技巧 Jun 05, 2024 pm 08:50 PM

透過(guò)掌握追蹤物件狀態(tài)、設(shè)定斷點(diǎn)、追蹤異常和利用xdebug擴(kuò)展,可以有效調(diào)試PHP物件導(dǎo)向程式碼。 1.追蹤物件狀態(tài):使用var_dump()和print_r()檢視物件屬性和方法值。 2.設(shè)定斷點(diǎn):在開(kāi)發(fā)環(huán)境中設(shè)定斷點(diǎn),偵錯(cuò)器會(huì)在執(zhí)行到達(dá)斷點(diǎn)時(shí)暫停,以便檢查物件狀態(tài)。 3.追蹤異常:使用try-catch區(qū)塊和getTraceAsString()取得異常發(fā)生時(shí)的堆疊追蹤和訊息。 4.利用偵錯(cuò)器:xdebug_var_dump()函數(shù)可在程式碼執(zhí)行過(guò)程中檢查變數(shù)的內(nèi)容。

學(xué)習(xí)canvas,需要了解哪些基本概念? 學(xué)習(xí)canvas,需要了解哪些基本概念? Jan 17, 2024 am 10:37 AM

學(xué)習(xí)canvas需要掌握哪些基礎(chǔ)?隨著現(xiàn)代Web技術(shù)的發(fā)展,使用HTML5中的<canvas>標(biāo)籤進(jìn)行繪圖成為一種常見(jiàn)的方式。 Canvas是用於繪製圖形、動(dòng)畫和其他影像的HTML元素,它可以利用JavaScript進(jìn)行操作和控制。如果你想要學(xué)習(xí)canvas並掌握其基礎(chǔ)知識(shí),以下將為你詳細(xì)介紹。 HTML與CSS基礎(chǔ):在學(xué)習(xí)canvas之

See all articles