搜尋
首頁web前端js教程在javascript中物件的創建詳解

我們知道javscript是面向對像有語言,當然離不開對像操作.本文講解javascript創建對象.

  從本質上講,創建物件的想法只是為了創建一個簡單的實體,這個實體包含了許多屬性和方法。
  以下是一個物件建構器的例子:
  function Person(name, age, colour) {
  this.name = name;
  this.age = age;這樣來呼叫Person建構器:
  var somebody = new Person("Patrick", 22, "red");
  或從使用者得到輸入數值:
  var pName = prompt("What is your name?"); = prompt("How old are you this year?");
  var pColour = prompt("What is your favourite colour?");
  var somebody = new Person(pName, p5Person(pName, pAge, pscriptour);構造器,就像在Java中,都可以利用new關鍵字來進行呼叫。當一個person利用它的屬性{"Patrick", 22, "red"}被創建(或者說被構造)的時候,這些數值就可以訪問了,例如:
  somebody.name, or  somebody["name"] "Patrick"
  somebody.age, or  somebody["age"]  22
  somebody.colour, or  somebody["colour"]  "red"
  因為我們利用name增加了Personname,所以必須引用它們的屬性,所以必須透過名稱增加了Personname) ,這點在後面的程式碼中可以看到。如果我們使用數字,那麼我們就必須使用數字來引用,例如要用somebody[0],而不用somebody.name。
  javascript的陣列和物件(如 forms,images,frames,…)都允許這兩種方法。
  另外,數組和物件都有一個本質的屬性,即length(長度)。我們在編製程式的時候,可以這樣來使用它:objectName.length,它會傳回物件包含的元素或屬性的數量。
  屬性同樣也可以從函數中來創建,這樣,你只需要增加一行到Person函數中就可以創建屬性了:
  function Person(name, age, colour)
  {
  斯. age = age;
  this.colour = colour;
  this.birthYear = (new Date()).getYear() - this.age;
  }
 }
  以上的Person函數定義了第四個屬性:它:一個Person的出生年。這裡要注意,這增加的行是呼叫一個內建的Date建構器,它傳回一個包含了目前日期和時間的Date物件。
  這是一個非常懶惰的方法來存取一個Date變數。所以使用下面的程式碼會顯得更準確些,更有可讀性:
  var today = new Date();
  this.birthYear = today.getYear() - this.age;
  當然,有許多方法來對javascript程式進行“壓縮”。透過插入物件到程式碼中,你就可以處理絕大多數的變數。
  這個Date物件比起我們上面定義的Person物件來說更複雜,因為它包含了存取方法(accessor/get)以及操作方法(manipulator/set)。同時,增加簡單的物件方法到javascript是可能,以下是詳細的範例程式碼:
  
  透過將物件重載重載.顯示出來。每當Person物件被引用為字串的時候,pringPerson傳回的數值就決定了該顯示什麼了。
  上面腳本的輸出如下所示:
Patrick was born in 76
  and is 22 years old.
  Betty was born in 77
  and is 21 years old.
   〜  and is 21 years old.
  [Patrick 〜 〜er〜〜〜.Patrick〜 er  Patrick older 〜〼 1976年只用76來表示。所以你可能想增加「19」到這兩位數字的前面。不幸的是,「千年蟲」的問題使得你處理起來有點棘手。而不同的瀏覽器處理Date物件的getYear()方法是不同的。
  Year(年份)
  Navigator瀏覽器
  IE 3.x瀏覽器
  IE 4.x瀏覽器
  你可以從上面表格中發現四位最新的瀏覽器支援1999年。不幸的是,老的瀏覽器處理年份的格式的時候給程式設計人員無盡的困惑。我常用的具體解決方法如下所示,與大家分享:
  var thisYear = (new Date()).getYear();
  thisYear = 1900 + (thisYear % 1900);
 『將年份轉換位IE 3.x格式並且增加1900以獲得真實的年份(例如,2002年經過this Year%1900轉換位IE 3.x格式位元102,然後102再加上1900得到2002)。上面這兩個語句可以適用於從1900年到3799年的處理,現在看起來這麼長的時間是足夠使用了。但是,為了避免類似「千年蟲」問題,我們應該再找出更好的解決方案,在本教程中就不給了。另外,新的ECMA標準包含了一個名為getFullYear()的函數,它是傳回完整的年份格式,但這個函數只能由Navigator 4支持,在IE中是不能使用的。
  最後對程式再做一點改進,我們可以修改People建構器以轉換年份為YYYY格式,具體程式碼如下:
  this.birthYear = 1900 + (((new Date()).getYear() - this.age) % 1900);
  在javascript中使用物件的能力通常被許多程式設計人員所忽略。但是從本教程中,你應該可以看到使用物件可以使程式設計師設計出更強大的應用程式來的。

 更多相關文章請追蹤PHP中文網(www.php.cn)!


陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
es6数组怎么去掉重复并且重新排序es6数组怎么去掉重复并且重新排序May 05, 2022 pm 07:08 PM

去掉重复并排序的方法:1、使用“Array.from(new Set(arr))”或者“[…new Set(arr)]”语句,去掉数组中的重复元素,返回去重后的新数组;2、利用sort()对去重数组进行排序,语法“去重数组.sort()”。

JavaScript的Symbol类型、隐藏属性及全局注册表详解JavaScript的Symbol类型、隐藏属性及全局注册表详解Jun 02, 2022 am 11:50 AM

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于Symbol类型、隐藏属性及全局注册表的相关问题,包括了Symbol类型的描述、Symbol不会隐式转字符串等问题,下面一起来看一下,希望对大家有帮助。

原来利用纯CSS也能实现文字轮播与图片轮播!原来利用纯CSS也能实现文字轮播与图片轮播!Jun 10, 2022 pm 01:00 PM

怎么制作文字轮播与图片轮播?大家第一想到的是不是利用js,其实利用纯CSS也能实现文字轮播与图片轮播,下面来看看实现方法,希望对大家有所帮助!

JavaScript对象的构造函数和new操作符(实例详解)JavaScript对象的构造函数和new操作符(实例详解)May 10, 2022 pm 06:16 PM

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于对象的构造函数和new操作符,构造函数是所有对象的成员方法中,最早被调用的那个,下面一起来看一下吧,希望对大家有帮助。

JavaScript面向对象详细解析之属性描述符JavaScript面向对象详细解析之属性描述符May 27, 2022 pm 05:29 PM

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于面向对象的相关问题,包括了属性描述符、数据描述符、存取描述符等等内容,下面一起来看一下,希望对大家有帮助。

javascript怎么移除元素点击事件javascript怎么移除元素点击事件Apr 11, 2022 pm 04:51 PM

方法:1、利用“点击元素对象.unbind("click");”方法,该方法可以移除被选元素的事件处理程序;2、利用“点击元素对象.off("click");”方法,该方法可以移除通过on()方法添加的事件处理程序。

整理总结JavaScript常见的BOM操作整理总结JavaScript常见的BOM操作Jun 01, 2022 am 11:43 AM

本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于BOM操作的相关问题,包括了window对象的常见事件、JavaScript执行机制等等相关内容,下面一起来看一下,希望对大家有帮助。

foreach是es6里的吗foreach是es6里的吗May 05, 2022 pm 05:59 PM

foreach不是es6的方法。foreach是es3中一个遍历数组的方法,可以调用数组的每个元素,并将元素传给回调函数进行处理,语法“array.forEach(function(当前元素,索引,数组){...})”;该方法不处理空数组。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SublimeText3 Mac版

SublimeText3 Mac版

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

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!