第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

不懂就問,請問javascript對象的問題?

不懂就問,請問javascript對象的問題?

湖上湖 2023-02-11 14:10:41
在javascript中有很對對象,如系統(tǒng)內(nèi)置的字符串對象,數(shù)組對象,布爾對象和日期對象等,還有用戶自定義的對象,這些對象都會有一些共同的特性,在javascript中,將這些共同的特性反應(yīng)在一個名為object的對象中,換句話說,object對象是包含所有javascript對象的特性的一種對象,該對象中的屬性與方法被其他對象繼承.-----------------------------------------------------------------------第1個問題:字符串對象,數(shù)組對象,布爾對象和日期對象,還有用戶自定義的對象這些對象都會有一些共同的特性,請問是什么共同特性?第2個問題:將這些共同的特性反應(yīng)在一個名為object的對象中,是什么意思?請舉例說明.第3個問題:object對象是包含所有javascript對象的特性的一種對象,不懂,請舉例說明?第4個問題:object對象中的屬性與方法被其他對象繼承,不懂,請舉例說明?第5個問題:new object() 在javascript中,將這些共同的特性反應(yīng)在一個名為object的對象中,這個object對象是不是object()函數(shù)啊?我怎么覺得不是啊,這個object()是函數(shù),用new將object()創(chuàng)建一個對象?那么特性反應(yīng)在一個名為object的對象中,是什么樣子的啊?寫個看看.第6個問題:new object()object()是一個函數(shù),new是不是將object()函數(shù)創(chuàng)建成對象?第7個問題:new object(value)如果為object構(gòu)造函數(shù)指定參數(shù),可以直接將value參數(shù)的值轉(zhuǎn)換為數(shù)字對象,布爾對象或字符串對象請問這個object()構(gòu)造函數(shù)是自己寫的還是javascript內(nèi)置的函數(shù)啊?請問將value參數(shù)的值轉(zhuǎn)換為數(shù)字對象,布爾對象或字符串對象,意思是不是說value參數(shù)傳到object()函數(shù)體內(nèi)部后,再用new關(guān)鍵字將object(value)整個函數(shù)轉(zhuǎn)換成某個類型的對象?還是說某個類型的參數(shù)傳到object()函數(shù)里面去后,就決定是什么類型的函數(shù),然后用new關(guān)鍵字將函數(shù)的返回值創(chuàng)建一個object對象
查看完整描述

2 回答

?
青春有我

TA貢獻1784條經(jīng)驗 獲得超8個贊

//我覺得,你只要弄懂了 javascript的兩個重要東西;其它什么都可以弄懂了
//你的所有問題可以歸結(jié)為這兩個東西:“原型(prototype)”和“閉包(closure)”
//請學(xué)習(xí)這兩個東西!

<HTML>
<HEAD>
<TITLE></TITLE>
<meta http-equiv=Content-Type Content="text/html; charset=utf-8">
</HEAD>

<BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
//用函數(shù)的辦法構(gòu)造類
function Person(name , gender , email){
this.name = name || 'no name ';
this.gender = gender || 'male';
this.email = email || "email@host.com";
}

//用原型的辦法實現(xiàn)類的靜態(tài)函數(shù)
Person.prototype = {

showName : function (){
alert("my name is " + this.name);
}

,showGender : function (){
alert("i am a " + this.gender);


,showEmail : function (){
alert(" my email address is " + this.email);
}
};

//在object的原型中添加show()方法;
Object.prototype.show = function(){
alert('this is the method of Object named show(); and it is the "static " method of all object created in any means')
}

var tempAry = [];

var aryObj = new Array(1,2,3);

var rawObj = new Object();

var timObj = new Date();

var myObj = new Person('wuchangqian' , 'male' , 'wuchangqian@gamil.com');

var domObj = document.createElement("input");

tempAry.push(aryObj);
tempAry.push(rawObj);
tempAry.push(timObj);
tempAry.push(myObj);
tempAry.push(domObj);

(function(ary){
for(var i = 0 , j = ary.length ; i < j ; i++){
try{

tempAry[i].show();

}catch(e){
alert(tempAry[i].nodeName + "do not suport show method !");
}
}

})(tempAry)

//-->
</SCRIPT>
</BODY>
</HTML>

 


查看完整回答
反對 回復(fù) 2023-02-15
?
慕容708150

TA貢獻1831條經(jīng)驗 獲得超4個贊

JavaScript 是使用“對象化編程”的,或者叫“面向?qū)ο缶幊獭钡?。所謂“對象化編程”,意思是把 JavaScript 能涉及的范圍劃分成大大小小的對象,對象下面還繼續(xù)劃分對象直至非常詳細為止,所有的編程都以對象為出發(fā)點,基于對象。小到一個變量,大到網(wǎng)頁文檔、窗口甚至屏幕,都是對象。這一章將“面向?qū)ο蟆敝v述 JavaScript 的運行情況。 
對象的基本知識 
對象是可以從 JavaScript“勢力范圍”中劃分出來的一小塊,可以是一段文字、一幅圖片、一個表單(Form)等等。每個對象有它自己的屬性、方法和事件。對象的屬性是反映該對象某些特定的性質(zhì)的,例如:字符串的長度、圖像的長寬、文字框(Textbox)里的文字等等;對象的方法能對該對象做一些事情,例如,表單的“提交”(Submit),窗口的“滾動”(Scrolling)等等;而對象的事件就能響應(yīng)發(fā)生在對象上的事情,例如提交表單產(chǎn)生表單的“提交事件”,點擊連接產(chǎn)生的“點擊事件”。不是所有的對象都有以上三個性質(zhì),有些沒有事件,有些只有屬性。引用對象的任一“性質(zhì)”用“<對象名>.<性質(zhì)名>”這種方法。 

基本對象 
現(xiàn)在我們要復(fù)習(xí)以上學(xué)過的內(nèi)容了——把一些數(shù)據(jù)類型用對象的角度重新學(xué)習(xí)一下。 
Number “數(shù)字”對象。這個對象用得很少,作者就一次也沒有見過。不過屬于“Number”的對象,也就是“變量”就多了。 

屬性 
MAX_VALUE 用法:Number.MAX_VALUE;返回“最大值”。 
MIN_VALUE 用法:Number.MIN_VALUE;返回“最小值”。 
NaN 用法:Number.NaN 或 NaN;返回“NaN”?!癗aN”(不是數(shù)值)在很早就介紹過了。 
NEGATIVE_INFINITY 用法:Number.NEGATIVE_INFINITY;返回:負無窮大,比“最小值”還小的值。 
POSITIVE_INFINITY 用法:Number.POSITIVE_INFINITY;返回:正無窮大,比“最大值”還大的值。 
方法 
toString() 用法:<數(shù)值變量>.toString();返回:字符串形式的數(shù)值。如:若 a == 123;則 a.toString() == '123'。 

String 字符串對象。聲明一個字符串對象最簡單、快捷、有效、常用的方法就是直接賦值。 

屬性 
length 用法:<字符串對象>.length;返回該字符串的長度。 
方法 
charAt() 用法:<字符串對象>.charAt(<位置>);返回該字符串位于第<位置>位的單個字符。注意:字符串中的一個字符是第 0 位的,第二個才是第 1 位的,最后一個字符是第 length - 1 位的。 
charCodeAt() 用法:<字符串對象>.charCodeAt(<位置>);返回該字符串位于第<位置>位的單個字符的 ASCII 碼。 
fromCharCode() 用法:String.fromCharCode(a, b, c...);返回一個字符串,該字符串每個字符的 ASCII 碼由 a, b, c... 等來確定。 
indexOf() 用法:<字符串對象>.indexOf(<另一個字符串對象>[, <起始位置>]);該方法從<字符串對象>中查找<另一個字符串對象>(如果給出<起始位置>就忽略之前的位置),如果找到了,就返回它的位置,沒有找到就返回“-1”。所有的“位置”都是從零開始的。 
lastIndexOf() 用法:<字符串對象>.lastIndexOf(<另一個字符串對象>[, <起始位置>]);跟 indexOf() 相似,不過是從后邊開始找。 
split() 用法:<字符串對象>.split(<分隔符字符>);返回一個數(shù)組,該數(shù)組是從<字符串對象>中分離開來的,<分隔符字符>決定了分離的地方,它本身不會包含在所返回的數(shù)組中。例如:'1&2&345&678'.split('&')返回數(shù)組:1,2,345,678。關(guān)于數(shù)組,我們等一下就討論。 
substring() 用法:<字符串對象>.substring(<始>[, <終>]);返回原字符串的子字符串,該字符串是原字符串從<始>位置到<終>位置的前一位置的一段。<終> - <始> = 返回字符串的長度(length)。如果沒有指定<終>或指定得超過字符串長度,則子字符串從<始>位置一直取到原字符串尾。如果所指定的位置不能返回字符串,則返回空字符串。 
substr() 用法:<字符串對象>.substr(<始>[, <長>]);返回原字符串的子字符串,該字符串是原字符串從<始>位置開始,長度為<長>的一段。如果沒有指定<長>或指定得超過字符串長度,則子字符串從<始>位置一直取到原字符串尾。如果所指定的位置不能返回字符串,則返回空字符串。 
toLowerCase() 用法:<字符串對象>.toLowerCase();返回把原字符串所有大寫字母都變成小寫的字符串。 
toUpperCase() 用法:<字符串對象>.toUpperCase();返回把原字符串所有小寫字母都變成大寫的字符串。 

Array 數(shù)組對象。數(shù)組對象是一個對象的集合,里邊的對象可以是不同類型的。數(shù)組的每一個成員對象都有一個“下標”,用來表示它在數(shù)組中的位置(既然是“位置”,就也是從零開始的啦)。 
數(shù)組的定義方法: 

var <數(shù)組名> = new Array(); 

這樣就定義了一個空數(shù)組。以后要添加數(shù)組元素,就用: 

<數(shù)組名>[<下標>] = ...; 

注意這里的方括號不是“可以省略”的意思,數(shù)組的下標表示方法就是用方括號括起來。 
如果想在定義數(shù)組的時候直接初始化數(shù)據(jù),請用: 

var <數(shù)組名> = new Array(<元素1>, <元素2>, <元素3>...); 

例如,var myArray = new Array(1, 4.5, 'Hi'); 定義了一個數(shù)組 myArray,里邊的元素是:myArray[0] == 1; myArray[1] == 4.5; myArray[2] == 'Hi'。 
但是,如果元素列表中只有一個元素,而這個元素又是一個正整數(shù)的話,這將定義一個包含<正整數(shù)>個空元素的數(shù)組。 
注意:JavaScript只有一維數(shù)組!千萬不要用“Array(3,4)”這種愚蠢的方法來定義 4 x 5 的二維數(shù)組,或者用“myArray[2,3]”這種方法來返回“二維數(shù)組”中的元素。任意“myArray[...,3]”這種形式的調(diào)用其實只返回了“myArray[3]”。要使用多維數(shù)組,請用這種虛擬法: 

var myArray = new Array(new Array(), new Array(), new Array(), ...); 

其實這是一個一維數(shù)組,里邊的每一個元素又是一個數(shù)組。調(diào)用這個“二維數(shù)組”的元素時:myArray[2][3] = ...; 

屬性 
length 用法:<數(shù)組對象>.length;返回:數(shù)組的長度,即數(shù)組里有多少個元素。它等于數(shù)組里最后一個元素的下標加一。所以,想添加一個元素,只需要:myArray[myArray.length] = ...。 
方法 
join() 用法:<數(shù)組對象>.join(<分隔符>);返回一個字符串,該字符串把數(shù)組中的各個元素串起來,用<分隔符>置于元素與元素之間。這個方法不影響數(shù)組原本的內(nèi)容。 
reverse() 用法:<數(shù)組對象>.reverse();使數(shù)組中的元素順序反過來。如果對數(shù)組[1, 2, 3]使用這個方法,它將使數(shù)組變成:[3, 2, 1]。 
slice() 用法:<數(shù)組對象>.slice(<始>[, <終>]);返回一個數(shù)組,該數(shù)組是原數(shù)組的子集,始于<始>,終于<終>。如果不給出<終>,則子集一直取到原數(shù)組的結(jié)尾。 
sort() 用法:<數(shù)組對象>.sort([<方法函數(shù)>]);使數(shù)組中的元素按照一定的順序排列。如果不指定<方法函數(shù)>,則按字母順序排列。在這種情況下,80 是比 9 排得前的。如果指定<方法函數(shù)>,則按<方法函數(shù)>所指定的排序方法排序。<方法函數(shù)>比較難講述,這里只將一些有用的<方法函數(shù)>介紹給大家。 
按升序排列數(shù)字: 

function sortMethod(a, b) { 
return a - b; 


myArray.sort(sortMethod); 

按降序排列數(shù)字:把上面的“a - b”該成“b - a”。 
有關(guān)函數(shù),請看下面。 

Math “數(shù)學(xué)”對象,提供對數(shù)據(jù)的數(shù)學(xué)計算。下面所提到的屬性和方法,不再詳細說明“用法”,大家在使用的時候記住用“Math.<名>”這種格式。 

屬性 
E 返回常數(shù) e (2.718281828...)。 
LN2 返回 2 的自然對數(shù) (ln 2)。 
LN10 返回 10 的自然對數(shù) (ln 10)。 
LOG2E 返回以 2 為低的 e 的對數(shù) (log2e)。 
LOG10E 返回以 10 為低的 e 的對數(shù) (log10e)。 
PI 返回π(3.1415926535...)。 
SQRT1_2 返回 1/2 的平方根。 
SQRT2 返回 2 的平方根。 
方法 
abs(x) 返回 x 的絕對值。 
acos(x) 返回 x 的反余弦值(余弦值等于 x 的角度),用弧度表示。 
asin(x) 返回 x 的反正弦值。 
atan(x) 返回 x 的反正切值。 
atan2(x, y) 返回復(fù)平面內(nèi)點(x, y)對應(yīng)的復(fù)數(shù)的幅角,用弧度表示,其值在 -π 到 π 之間。 
ceil(x) 返回大于等于 x 的最小整數(shù)。 
cos(x) 返回 x 的余弦。 
exp(x) 返回 e 的 x 次冪 (ex)。 
floor(x) 返回小于等于 x 的最大整數(shù)。 
log(x) 返回 x 的自然對數(shù) (ln x)。 
max(a, b) 返回 a, b 中較大的數(shù)。 
min(a, b) 返回 a, b 中較小的數(shù)。 
pow(n, m) 返回 n 的 m 次冪 (nm)。 
random() 返回大于 0 小于 1 的一個隨機數(shù)。 
round(x) 返回 x 四舍五入后的值。 
sin(x) 返回 x 的正弦。 
sqrt(x) 返回 x 的平方根。 
tan(x) 返回 x 的正切。 

Date 日期對象。這個對象可以儲存任意一個日期,從 0001 年到 9999 年,并且可以精確到毫秒數(shù)(1/1000 秒)。在內(nèi)部,日期對象是一個整數(shù),它是從 1970 年 1 月 1 日零時正開始計算到日期對象所指的日期的毫秒數(shù)。如果所指日期比 1970 年早,則它是一個負數(shù)。所有日期時間,如果不指定時區(qū),都采用“UTC”(世界時)時區(qū),它與“GMT”(格林威治時間)在數(shù)值上是一樣的。 
定義一個日期對象: 

var d = new Date; 

這個方法使 d 成為日期對象,并且已有初始值:當(dāng)前時間。如果要自定初始值,可以用: 

var d = new Date(99, 10, 1); //99 年 10 月 1 日 
var d = new Date('Oct 1, 1999'); //99 年 10 月 1 日 

等等方法。最好的方法就是用下面介紹的“方法”來嚴格的定義時間。 

方法 
以下有很多“g/set[UTC]XXX”這樣的方法,它表示既有“getXXX”方法,又有“setXXX”方法?!癵et”是獲得某個數(shù)值,而“set”是設(shè)定某個數(shù)值。如果帶有“UTC”字母,則表示獲得/設(shè)定的數(shù)值是基于 UTC 時間的,沒有則表示基于本地時間或瀏覽期默認時間的。 
如無說明,方法的使用格式為:“<對象>.<方法>”,下同。 
g/set[UTC]FullYear() 返回/設(shè)置年份,用四位數(shù)表示。如果使用“x.set[UTC]FullYear(99)”,則年份被設(shè)定為 0099 年。 
g/set[UTC]Year()返回/設(shè)置年份,用兩位數(shù)表示。設(shè)定的時候瀏覽器自動加上“19”開頭,故使用“x.set[UTC]Year(00)”把年份設(shè)定為 1900 年。 
g/set[UTC]Month()返回/設(shè)置月份。 
g/set[UTC]Date()返回/設(shè)置日期。 
g/set[UTC]Day()返回/設(shè)置星期,0 表示星期天。 
g/set[UTC]Hours()返回/設(shè)置小時數(shù),24小時制。 
g/set[UTC]Minutes()返回/設(shè)置分鐘數(shù)。 
g/set[UTC]Seconds()返回/設(shè)置秒鐘數(shù)。 
g/set[UTC]Milliseconds()返回/設(shè)置毫秒數(shù)。 
g/setTime() 返回/設(shè)置時間,該時間就是日期對象的內(nèi)部處理方法:從 1970 年 1 月 1 日零時正開始計算到日期對象所指的日期的毫秒數(shù)。如果要使某日期對象所指的時間推遲 1 小時,就用:“x.setTime(x.getTime() + 60 * 60 * 1000);”(一小時 60 分,一分 60 秒,一秒 1000 毫秒)。 
getTimezoneOffset() 返回日期對象采用的時區(qū)與格林威治時間所差的分鐘數(shù)。在格林威治東方的市區(qū),該值為負,例如:中國時區(qū)(GMT+0800)返回“-480”。 
toString() 返回一個字符串,描述日期對象所指的日期。這個字符串的格式類似于:“Fri Jul 21 15:43:46 UTC+0800 2000”。 
toLocaleString() 返回一個字符串,描述日期對象所指的日期,用本地時間表示格式。如:“2000-07-21 15:43:46”。 
toGMTString() 返回一個字符串,描述日期對象所指的日期,用 GMT 格式。 
toUTCString() 返回一個字符串,描述日期對象所指的日期,用 UTC 格式。 
parse() 用法:Date.parse(<日期對象>);返回該日期對象的內(nèi)部表達方式。 

全局對象 
全局對象從不現(xiàn)形,它可以說是虛擬出來的,目的在于把全局函數(shù)“對象化”。在 Microsoft JScript 語言參考中,它叫做“Global 對象”,但是引用它的方法和屬性從來不用“Global.xxx”(況且這樣做會出錯),而直接用“xxx”。 

屬性 
NaN 一早就說過了。 
方法 
eval() 把括號內(nèi)的字符串當(dāng)作標準語句或表達式來運行。 
isFinite() 如果括號內(nèi)的數(shù)字是“有限”的(介于 Number.MIN_VALUE 和 Number.MAX_VALUE 之間)就返回 true;否則返回 false。 
isNaN() 如果括號內(nèi)的值是“NaN”則返回 true 否則返回 false。 
parseInt() 返回把括號內(nèi)的內(nèi)容轉(zhuǎn)換成整數(shù)之后的值。如果括號內(nèi)是字符串,則字符串開頭的數(shù)字部分被轉(zhuǎn)換成整數(shù),如果以字母開頭,則返回“NaN”。 
parseFloat() 返回把括號內(nèi)的字符串轉(zhuǎn)換成浮點數(shù)之后的值,字符串開頭的數(shù)字部分被轉(zhuǎn)換成浮點數(shù),如果以字母開頭,則返回“NaN”。 
toString() 用法:<對象>.toString();把對象轉(zhuǎn)換成字符串。如果在括號中指定一個數(shù)值,則轉(zhuǎn)換過程中所有數(shù)值轉(zhuǎn)換成特定進制。 
escape() 返回括號中的字符串經(jīng)過編碼后的新字符串。該編碼應(yīng)用于 URL,也就是把空格寫成“%20”這種格式。“+”不被編碼,如果要“+”也被編碼,請用:escape('...', 1)。 
unescape() 是 escape() 的反過程。解編括號中字符串成為一般字符串。 

函數(shù)函數(shù)的定義 
所謂“函數(shù)”,是有返回值的對象或?qū)ο蟮姆椒ā?nbsp;
函數(shù)的種類 
常見的函數(shù)有:構(gòu)造函數(shù),如 Array(),能構(gòu)造一個數(shù)組;全局函數(shù),即全局對象里的方法;自定義函數(shù);等等。 
自定義函數(shù) 
定義函數(shù)用以下語句: 

function 函數(shù)名([參數(shù)集]) { 
... 
[return[ <值>];] 
... 


其中,用在 function 之后和函數(shù)結(jié)尾的大括號是不能省去的,就算整個函數(shù)只有一句。 
函數(shù)名與變量名有一樣的起名規(guī)定,也就是只包含字母數(shù)字下劃線、字母排頭、不能與保留字重復(fù)等。 
參數(shù)集可有可無,但括號就一定要有。 
參數(shù) 是函數(shù)外部向函數(shù)內(nèi)部傳遞信息的橋梁,例如,想叫一個函數(shù)返回 3 的立方,你就要讓函數(shù)知道“3”這個數(shù)值,這時候就要有一個變量來接收數(shù)值,這種變量叫做參數(shù)。 
參數(shù)集是一個或多個用逗號分隔開來的參數(shù)的集合,如:a, b, c。 
函數(shù)的內(nèi)部有一至多行語句,這些語句并不會立即執(zhí)行,而只當(dāng)有其它程序調(diào)用它時才執(zhí)行。這些語句中可能包含“return”語句。在執(zhí)行一個函數(shù)的時候,碰到 return 語句,函數(shù)立刻停止執(zhí)行,并返回到調(diào)用它的程序中。如果“return”后帶有<值>,則退出函數(shù)的同時返回該值。 
在函數(shù)的內(nèi)部,參數(shù)可以直接當(dāng)作變量來使用,并可以用 var 語句來新建一些變量,但是這些變量都不能被函數(shù)外部的過程調(diào)用。要使函數(shù)內(nèi)部的信息能被外部調(diào)用,要么使用“return”返回值,要么使用全局變量。 
全局變量 在 Script 的“根部”(非函數(shù)內(nèi)部)的“var”語句所定義的變量就是全局變量,它能在整個過程的任意地方被調(diào)用、更改。 
例 

function addAll(a, b, c) { 
return a + b + c; 


var total = addAll(3, 4, 5); 

這個例子建立了一個叫“addAll”的函數(shù),它有 3 個參數(shù):a, b, c,作用是返回三個數(shù)相加的結(jié)果。在函數(shù)外部,利用“var total = addAll(3, 4, 5);”接收函數(shù)的返回值。 
更多的時候,函數(shù)是沒有返回值的,這種函數(shù)在一些比較強調(diào)嚴格的語言中是叫做“過程”的,例如 Basic 類語言的“Sub”、Pascal 語言的“procedure”。 

屬性 
arguments 一個數(shù)組,反映外部程序調(diào)用函數(shù)時指定的參數(shù)。用法:直接在函數(shù)內(nèi)部調(diào)用“arguments”。


查看完整回答
反對 回復(fù) 2023-02-15
  • 2 回答
  • 0 關(guān)注
  • 115 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號