国产精品白浆熟女,国产偷亚洲偷欧美偷精品,,新免费无码国产在线看,国产激情久久久久影院老熟女

JavaScript對(duì)象詳細(xì)剖析

JSON 2024-04-29 16:38:19 3252

JavaScript 不是一種成熟的面向?qū)ο缶幊陶Z言,例如 Java,但它是在簡(jiǎn)單的基于對(duì)象的模型上設(shè)計(jì)的。對(duì)象是具有包含 JavaScript 變量或其他對(duì)象的屬性的構(gòu)造。對(duì)象還具有與其關(guān)聯(lián)的函數(shù),這些函數(shù)稱為對(duì)象的方法。除了 JavaScript 核心(例如數(shù)組或數(shù)學(xué))對(duì)象之外,您還可以定義自己的對(duì)象。

簡(jiǎn)介

由于 JavaScript 是一種松散類型、動(dòng)態(tài)且富有表現(xiàn)力的語言,因此您可以通過多種方式完成相同的任務(wù)。本教程的目的是為您提供釋放語言潛力(在創(chuàng)建和使用對(duì)象的上下文中)的指南,從而幫助您了解幕后發(fā)生的事情。不能說這里描述的方法是做事的唯一方法。相反,如果這能幫助您選擇自己的方法,那就太好了。

JavaScript 對(duì)象、創(chuàng)建對(duì)象、語法

JavaScript 對(duì)象

JavaScript 中的“一切”就像一個(gè)對(duì)象,例如字符串、數(shù)字、數(shù)組、函數(shù)……,但有兩個(gè)例外:nullundefined。

JavaScript:創(chuàng)建對(duì)象

在 JavaScript 中,創(chuàng)建對(duì)象的方法有很多種。您可以使用對(duì)象初始值設(shè)定項(xiàng)創(chuàng)建對(duì)象,或編寫構(gòu)造函數(shù)來定義對(duì)象類型并使用 new 運(yùn)算符創(chuàng)建對(duì)象的實(shí)例。 JavaScript 的“對(duì)象初始值設(shè)定項(xiàng)”與 C++ 使用的術(shù)語一致。

句法

使用對(duì)象字面量 - {} 表示法,您可以創(chuàng)建一個(gè)普通對(duì)象:

var objectName = {}

或者

您可以通過定義屬性和值來創(chuàng)建新對(duì)象:

var objectName = { property1 : value1, 
                   property2 : value2, 
                   //..., 
                   propertyN : valueN } ; 

在哪里

objectName :新對(duì)象的名稱。

property_1, property_2, .....property_n :標(biāo)識(shí)符(名稱、數(shù)字或字符串)。

value1, value2,..,valueN :一個(gè)表達(dá)式,其值由 property_1、property_2、.....property_n 標(biāo)識(shí)。

在 JavaScript 中,您可以創(chuàng)建新對(duì)象而無需創(chuàng)建類。該對(duì)象不屬于任何類;它是同類中唯一的一個(gè)。您可以使用typeof 運(yùn)算符來獲取新創(chuàng)建的對(duì)象的數(shù)據(jù)類型。請(qǐng)參閱以下示例:

*要運(yùn)行代碼,請(qǐng)將鼠標(biāo)懸停在“輸出”面板上,然后單擊“使用 JS 運(yùn)行”按鈕。*

jsbin.com 上的 JS Bin ">檢查對(duì)象的類型

示例:對(duì)象初始值設(shè)定項(xiàng)

以下代碼創(chuàng)建一個(gè)對(duì)象“student”,具有三個(gè)屬性 name、sclass 和 rollno。

var Student = { 
                name : "David Rayy", 
                sclass : "VI", 
                rollno : 12 }

使用構(gòu)造函數(shù)

這是創(chuàng)建對(duì)象的另一種方法。

首先通過編寫構(gòu)造函數(shù)定義對(duì)象類型,然后用new創(chuàng)建對(duì)象的實(shí)例。

編寫構(gòu)造函數(shù)時(shí),我們應(yīng)該遵循以下規(guī)則。

構(gòu)造函數(shù)名稱將是對(duì)象類型名稱。

在構(gòu)造函數(shù)中,this 運(yùn)算符用于引用當(dāng)前對(duì)象。

屬性/方法的值在等號(hào)“=”之后定義。

構(gòu)造函數(shù)中不會(huì)有“return”語句。

構(gòu)造函數(shù)的示例

這是構(gòu)造函數(shù)的示例:

function Student(name, sclass, rollno)
    { 
     this.name = name; 
     this.sclass = sclass; 
     this.rollno = rollno; }

上面對(duì)象的類型是student,有name、sclass、rollno三個(gè)屬性。對(duì)象的值取決于傳遞給函數(shù)的參數(shù)。讓我們創(chuàng)建一個(gè)名為 Studentv 的對(duì)象,如下所示:

studentv = new student("John", "V", 10); 

上面的語句創(chuàng)建一個(gè)名為 Studentv 的對(duì)象,并為其屬性分配指定的值。因此,studentv.name 的值是字符串“John”,studentv.sclass 是字符串“V”,student.rollno 是整數(shù) 10。您可以使用 new 運(yùn)算符創(chuàng)建任意數(shù)量的學(xué)生對(duì)象。例如 -

studentv  = new student("John", "V", 10);
studentvi = new student("Scott", "VI", 2);

對(duì)象和屬性

屬性是對(duì)象的特征。 JavaScript 對(duì)象具有與其關(guān)聯(lián)的屬性。例如,文檔對(duì)象有一個(gè)名為 fgColor 的屬性,該屬性描述 (document.fgColor = "color_name") 該對(duì)象的背景顏色。 JavaScript 對(duì)象的屬性與 JavaScript 變量基本相同,只是附加了帶有點(diǎn)符號(hào)的對(duì)象名稱。

在javaScript中,對(duì)象名和屬性名都是區(qū)分大小寫的。您可以通過指定值來定義屬性。假設(shè)有一個(gè)名為student的對(duì)象,它具有三個(gè)屬性name、sclass、rollno。他們定義如下:

student.name = "David Rayy";
student.sclass = "V";
student.rollno = 1 ;

JavaScript 對(duì)象的屬性也可以使用方括號(hào)表示法來設(shè)置。 JavaScript 中的對(duì)象和數(shù)組密切相關(guān),實(shí)際上它們是同一數(shù)據(jù)結(jié)構(gòu)的不同接口。您可以按如下方式設(shè)置先前學(xué)生對(duì)象的屬性:

student.["name"] =  "David Rayy";
student.["sclass"] =  "V";
student.["rollno"] = 1;

所述數(shù)組的類型稱為關(guān)聯(lián)數(shù)組,因?yàn)槊總€(gè)索引元素也與一個(gè)字符串值關(guān)聯(lián)。

訪問屬性

有兩種方法可以訪問對(duì)象的屬性:

點(diǎn)符號(hào)

方括號(hào)表示法。

兩種符號(hào)的作用相同。方括號(hào)表示法用于在動(dòng)態(tài)設(shè)置屬性時(shí)確定屬性名稱(即直到運(yùn)行時(shí)才確定屬性名稱)。

var color = {name: 'red'};
color.name; // red
color['name']; // red

var get = 'name';
color[get]; // red

刪除屬性

刪除運(yùn)算符刪除對(duì)象的屬性。如果將屬性設(shè)置為 null 或未定義,則只會(huì)刪除與該屬性關(guān)聯(lián)的值,但不會(huì)刪除鍵。請(qǐng)參見以下示例:

var obj = {
    property1 : 'value1',
    property2 : 'value2',
    property3 : 'value3'
};
obj.property1 = undefined;
obj.property2 = null;
delete obj.property3;

JavaScript:定義方法

在 JavaScript 中,對(duì)象的方法在該對(duì)象“內(nèi)部”運(yùn)行。方法是與對(duì)象關(guān)聯(lián)的函數(shù)。對(duì)象的鍵稱為屬性,它們是原始值和其他對(duì)象的容器。如果屬性包含函數(shù)作為其值,則它們稱為方法。方法的定義方式與普通函數(shù)的定義方式相同,只不過它們必須被指定為對(duì)象的屬性。請(qǐng)參閱以下代碼:

句法

 var myObj = {
       ...
       methodName: Myfunction(parameters) 
       {
         statements;
       }
       };  

在哪里

“ myObj ”是對(duì)象的名稱。

“ methodName ”是方法的名稱。

“ Myfunction ”是函數(shù)的名稱。

您可以通過以下方式調(diào)用上述方法:

myObj.methodName(參數(shù));您可以通過在對(duì)象構(gòu)造函數(shù)中包含方法定義來定義對(duì)象類型的方法。例如,您可以定義一個(gè)函數(shù),該函數(shù)將格式化并顯示先前定義的學(xué)生對(duì)象的屬性(即名稱、班級(jí)、卷號(hào));請(qǐng)參閱以下示例:

function studentDetails() 
{
alert(
"The name of the student is " + this.name + " Class : " + this.class        + " Roll No.: " + this.rollno)
}

其中alert() - 顯示學(xué)生的詳細(xì)信息。

要使該函數(shù)成為學(xué)生對(duì)象的方法,可以使用以下代碼:

this.studentDetails = 學(xué)生詳細(xì)信息;到對(duì)象定義。

因此,學(xué)生的完整定義現(xiàn)在如下所示:

function student(name, class, rollno)
{ 
this.name = name 
this.class = class
this.class = rollno
this.studentDetails = studentDetails
} 

示例:學(xué)生對(duì)象

HTML 代碼

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>working-with-objects-1</title>
</head>
<body>

</body>
</html>

JS代碼

var fruitslist = new Array("Orange","Apple","Banana","Chery" );
var newParagraph = document.createElement("p"); 
var newText = document.createTextNode("List of Fruits : " + fruitslist); 
newParagraph.appendChild(newText); 
document.body.appendChild(newParagraph); 

var newfruitslist =fruitslist.slice(1,3);
var newParagraph = document.createElement("p"); 
var newText = document.createTextNode("Extract Fruits List : " + newfruitslist); 
newParagraph.appendChild(newText); 
document.body.appendChild(newParagraph); 

JavaScript 方法的更多示例

HTML 代碼

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
 <meta name="viewport" content="width=device-width">
  <title>working-with-objects-2</title>
</head>
<body>

</body>
</html>

JS代碼

var myObj = { // object "myobj" with three properties: x, y, z
  x: 100, // primitive value
  y: {a: 12}, // object "y" with property a
  z: function() // function abc -> (method)
      {  
       console.log('Method myObj.z');
      }
};
console.log(myObj.x); // 100
console.log(myObj.y); // [object Object]
console.log(myObj.y.a); // 12
myObj.z(); // 'Method myObj.z'

原型

在上一節(jié)中,我們將對(duì)象討論為簡(jiǎn)單的鍵和值對(duì)。但是JavaScript對(duì)象中有一個(gè)附加屬性,一個(gè)指向另一個(gè)對(duì)象的指針,稱為該對(duì)象的原型。

JavaScript 不支持經(jīng)典的繼承模型,而是使用原型模型。

JavaScript 中的每個(gè)對(duì)象都包含對(duì)其原型的引用

默認(rèn)是object.prototype

字符串使用 String.prototype 等。

原型可以有原型,等等。

對(duì)象從其原型繼承所有屬性/方法

在下面的示例中,我們創(chuàng)建了一個(gè)構(gòu)造函數(shù),并將一個(gè)方法(“display”)添加到該函數(shù)的原型屬性中,然后創(chuàng)建一個(gè)新對(duì)象(“stu1”)。

HTML 代碼

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>working-with-objects-3</title>
</head>
<body>

</body>
</html>

JS代碼

// Constructor function student
function student() {
    this.name = "Robert";
}
// add a method ti function's prototype
student.prototype.display = function() {
   console.log("My name is  " + this.name);
};
// create a new object stu1 
var stu1 = new student();
// stu1 can access the display() method
stu1.display();

現(xiàn)在,新創(chuàng)建的對(duì)象“stu1”可以訪問構(gòu)造函數(shù)原型上定義的所有屬性。

刪除對(duì)象

使用刪除運(yùn)算符我們可以刪除一個(gè)對(duì)象。請(qǐng)參閱以下代碼如何刪除對(duì)象。

myobj=新數(shù)組(元素1,元素2)

刪除 myobj

版權(quán)所屬:SO JSON在線解析

原文地址:http://zijieyoumin.cn/blog/528.html

轉(zhuǎn)載時(shí)必須以鏈接形式注明原始出處及本聲明。

本文主題:

如果本文對(duì)你有幫助,那么請(qǐng)你贊助我,讓我更有激情的寫下去,幫助更多的人。

關(guān)于作者
一個(gè)低調(diào)而悶騷的男人。
相關(guān)文章
Python正則表達(dá)式詳細(xì)剖析
Python正則表達(dá)式詳細(xì)剖析
JavaScript中splice()方法,有Demo詳細(xì)介紹
如何解JSON數(shù)據(jù)(詳細(xì)解答)
對(duì)Java的常用對(duì)象(POJO、DTO、PO、BO、VO、DAO)詳細(xì)解釋及應(yīng)用場(chǎng)景
TCP 和 UDP協(xié)議詳細(xì)講解,優(yōu)缺點(diǎn)分講解
Maven的Mirror和Repository 的詳細(xì)講解
HttpClient 獲取詳細(xì)的頭信息
MySQL備份方案之Xtrabackup詳細(xì)解答
Linux 安裝 Redis 詳細(xì)步驟講解
最新文章
計(jì)算機(jī)網(wǎng)絡(luò)的相關(guān)內(nèi)容 239
SOJSON V6 JavaScript 解密技巧與分析 5802
微信客服人工電話95068:如何快速解封微信賬號(hào)(2025最新指南) 11575
Java Http請(qǐng)求,HttpURLConnection HTTP請(qǐng)求丟失頭信息,Head信息丟失解決方案 5036
實(shí)用API合集分享:教你輕松獲取IP地址的API合集 8803
Linux I/O重定向 6705
Ruby 循環(huán) - while、for、until、break、redo 和 retry 3990
Node.js:全局對(duì)象 3581
如何使用終端檢查L(zhǎng)inux上的內(nèi)存使用情況 3779
JavaScript對(duì)象詳細(xì)剖析 3252
最熱文章
免費(fèi)天氣API,天氣JSON API,不限次數(shù)獲取十五天的天氣預(yù)報(bào) 744432
最新MyEclipse8.5注冊(cè)碼,有效期到2020年 (已經(jīng)更新) 702904
蘋果電腦Mac怎么恢復(fù)出廠系統(tǒng)?蘋果系統(tǒng)怎么重裝系統(tǒng)? 678320
Jackson 時(shí)間格式化,時(shí)間注解 @JsonFormat 用法、時(shí)差問題說明 561904
我為什么要選擇RabbitMQ ,RabbitMQ簡(jiǎn)介,各種MQ選型對(duì)比 511792
Elasticsearch教程(四) elasticsearch head 插件安裝和使用 483712
Jackson 美化輸出JSON,優(yōu)雅的輸出JSON數(shù)據(jù),格式化輸出JSON數(shù)據(jù)... ... 299492
Java 信任所有SSL證書,HTTPS請(qǐng)求拋錯(cuò),忽略證書請(qǐng)求完美解決 246598
Elasticsearch教程(一),全程直播(小白級(jí)別) 232033
227509
支付掃碼

所有贊助/開支都講公開明細(xì),用于網(wǎng)站維護(hù):贊助名單查看

查看我的收藏

正在加載... ...