本文目錄一覽:
- 1、js對象數組 根據某個共同字段 分組
- 2、如何在JS中釋放使用new ActiveXObject創建的對象
- 3、關於一段js代碼的幾個問題
- 4、怎樣在頁面獲取js對象的內容
- 5、如何用js實現類似於面向對象語言中類的私有變量
- 6、JS使用new操作符創建對象的方法分析
js對象數組 根據某個共同字段 分組
1、打開任一瀏覽器,按F12,進入開發者模式,找到控制台。本文以chrome瀏覽器為例,打開瀏覽器之後,打開任一標籤頁,找到Console控制台。
2、在控制台中,就可以書寫js代碼了。首先在此處定義一個js對象。直接使用 var obj1 = {}; 定義即可。
3、在控制台中,給js對象賦值,因為js是弱類型的語言,上面定義的對象並不需要指定字段類型,所以,在定義之後,就可以直接給它賦值了。
4、相同的方式,再定義另外一個js對象。直接使用 var obj2 = {}; 定義即可 。
5、在控制台中,給obj2對象賦值,而且,使用與obj1不相同的字段結構。
6、在控制台中,定義一個數組,定義方式如下:var arr = new Array()。
7、在控制台中,使用arr.push(obj1),就可以將對象1存放到js數組中。arr.push(obj2),就可以將對象2存放到js數組中。注意,obj1、obj2兩個對象的字段是不相同的,但是,也是可以存放到同一個js數組中的,因為js是弱類型的。最後,直接使用arr,就可以看到當前數組中的對象值。
如何在JS中釋放使用new ActiveXObject創建的對象
1、首先在電腦中打開js,使用new Date()可以獲得當前的時間,代碼如下。
2、當向new Date()傳入指定的時間參數時,new Date()就不再是當前的時間了,而是新創建的一個時間。
3、當向new Date()傳入兩位數年份的參數時,將會解析成19XX年,例如,下面例子時間將是1999年5月24日。
4、當向new Date()傳入一個整數參數時,整數將被當作毫秒數來使用,日期將是1970年1月1日加上毫秒數的時間。
5、最後使用new Date()創建的時間,可以使用getDate()方法獲得當前時間的日,即1日至31日,下面代碼執行的結果為28,如下圖所示就完成了。
關於一段js代碼的幾個問題
據我了解,這段代碼應該是微軟專用的,可以在 IE 中設置默認主頁。也就是說,以上CSS 的 behavior 和 JavaScript 的 setHomePage() 是 IE 的私有語法,他們應該是在 IE5 中引入的,新版本的 IE 仍然支持,不過其他非 IE 內核瀏覽器是不支持的。
1. return(false) 是為了阻止瀏覽器的默認行為。比如說,a 的默認行為是產生超鏈接,單擊後影響瀏覽器的地址欄進行跳轉 ,還有 form 中的 button,默認行為是單擊後提交表單,那麼在 a 或 button 的 onclick 事件函數中 return(false) 就可以阻止這種行為,這樣就可以自定義某些功能了。
2. setHomePage(url) 是設置默認主頁的,url=你要設置的頁面地址。這是為 IE 專門設置的一個方法。
3.behavior 也是專用於 IE 的,就是藉助 CSS 樣式向 HTML 添加代碼,從而產生在 IE 中的某種瀏覽器效果,“#default#homepage”表示設置默認主頁效果。
4. 將 onclick 的代碼寫在函數中會好一些,比如說 onclick=“function(){ /*代碼放在函數裡面*/ }”,還有,setHomePage(url) 的 url 應當是整的網址,要有協議頭,如“http://”。
關於你說的 this.style.behavior 對 DOM 對象產生的影響問題,我來解釋一下:
1. this 指是的當前調用事件函數(如 onclick )的文檔對象,如 a onclick=”this.setHomePage(‘……’)” , this 就是對象 a 的引用(或者說就是這個 a);
2. 而 obj.style 是對文檔對象中 style 屬性的引用,比如上面的例子中,寫了 this.style.behavior=’url(#default#homepage}’,就相當於 a style=“behavior:url(#default#homepage)”。
如果你想詳細了解,可以看有關 HTML DOM 和 CSS in JavaScript 的資料。另外,IE 的專有語法可能與 Web 標準語法的實現機理不同,所以不用深究。
—————————————————————————————–
你要的那種“枚舉”功能,實際上就是用 for-in 循環實現的,比如說要查看 window 對象的屬性:
for(prop in window){
document.write(prop+”:”+window[prop]);
}
還有,之前已經說過,this.style 操作的是對象的樣式(或者說是 CSS),this.style.behavior 指向的就是 behavior 這個 CSS 屬性,這個屬性只有 IE 可以完全識別。而 setHomePage() 是微軟在 IE 實現的 DOM 中為對象額外定義的一個方法。這兩者沒有直接聯繫,也不存在“先有誰,後有誰”的問題,只是配合起來,可以在 IE 上實現添加默認主頁的對話框而已。
怎樣在頁面獲取js對象的內容
1.有以下輸入控件在HTML中,代碼如下:input type=”hidden” name=”productName” id=”productName” value=”測試產品名稱”。
2.可以使用js來獲取id和答案varvalue=文檔。getelementbyid(“productName”)。值。
3.接下來,我們將警告(value),看看是否得到了輸入的值。我們可以看到,輸入的值已經成功彈出。
4.也可以使用文檔。getElementsByName方法(name)。
5.如果您測試結果,您仍然可以看到“value”的值成功彈出。
6.您還可以通過jquery獲得輸入的值,這需要引入jquery的js包並傳遞代碼$("#id").val()。$("#productName").val()。
7.$("輸入('name=名字']”).val();例如,上面的例子可以使用$("input['name=productName']").val()。
如何用js實現類似於面向對象語言中類的私有變量
JavaScript中對象的創建有以下幾種方式: (一)使用內置對象 (二)使用JSON符號 (三)自定義對象構造 一、使用內置對象 JavaScript可用的內置對象可分為兩種: 一,JavaScript語言原生對象(語言級對象),如String、Object、Function等; 二,JavaScript運行期的宿主對象(環境宿主級對象),如window、document、body等。 我們所說的使用內置對象,是指通過JavaScript語言原生對象的構造方法,實例化出一個新的對象。如: 複製代碼 代碼如下: var str = new String(“實例初始化String”); var str一 = “直接賦值的String”; var func = new Function(“x”,”alert(x)”);//示例初始化func var o = new Object();//示例初始化一個Object 二、使用JSON符號 (i)何謂JSON ? JSON (JavaScript Object Notation)即JavaScript對象命名,是一種輕量級的數據交換格式,易於閱讀和編寫,同時也易於及其解析和生成。它基於 《JavaScript Programming Language, Standard ECMA-二陸二 三rd Edition – December 一999》的一個子集。JSON是完全獨立於語言的文本格式,因此成為數據交換的理想格式。 JSON作為 JavaScript的一個自己,同時ActionScript、C、C#、ColdFusion、E、Java、JavaScript、ML、 ObjectiveCAML、Perl、PHP、Python、Rebol、Ruby、Lua等一系列的語言都提供支持,使得JSON成為Ajax開發的 首選方案。 JSON有兩種構建方式,一種是採用簡單的“鍵/值對”的集合,在不同的語言中被理解為對象、記錄、結構、字典、哈希表、有鍵列表,或者關聯數組等,另一種採用有序的值列表,大部分語言把它理解為數組。 常用的創建方式是第一種,即採用“鍵/值對”集合的形式。在這種形式下,一個對象以“{”(左括號)開始,“}”(右括號)結束。每個“名稱”後跟一個“:”(冒號),“ ‘鍵/值’ 對”之間使用“,”(逗號)分隔。 JSON具有以下特點:(一)簡單格式化的數據交換;(二)易於人們的讀寫習慣;(三)易於機器的分析和運行。 在JavaScript中,JSON被理解為對象。通過字符串形式的JSON,數據可以很方便地解析成JavaScript獨享,並進行數據的讀取傳遞。通過JSON,在一定程度上客服了JavaScript對象無法作為參數系列化傳遞的問題。 一,簡單的JSON {name:”劉德華”,age:”二5″,sex:”男”} 二,JSON值的類型 JSON的值可以是簡單的數據類型,例如數字、浮點、字符等,也可以是數組及對象。例如以數組作為member鍵值的JSON: {member:[{name:”劉德華”},{name:”郭富城”},{name:”張學友”},{name:”黎明”}]} { book:[{name:”三國演義”},{name:”西遊記”},{name:”水滸傳”},{name:”紅樓夢”}], author:[{name:”羅貫中”},{name:”吳承恩”},{name:”施耐安”,{name:”曹雪芹”}}] } 三,在JavaScript中使用JSON JSON是JavaScript原生格式,這意味着在JavaScript中處理JSON數據不需要任何特殊的API或者工具包,JavaScript默認將JSON當做一個對象處理。 將對象傳遞給一個變量,例如: 複製代碼 代碼如下: var somebooks = { book:[{name:”三國演義”},{name:”西遊記”},{name:”水滸傳”},{name:”紅樓夢”}], author:[{name:”羅貫中”},{name:”吳承恩”},{name:”施耐安”,{name:”曹雪芹”}}] } JSON的每個“鍵”相當於對象的屬性,例如訪問book中的第一個條目,在JavaScript中,就可以簡單地使用“somebooks.book[0].name”來獲取“三國演義”這個值。 我們不但可以將一個JSON字符串轉化為對象,反過來將一個對象“編譯”為一個JSON字符串,以方便JavaScript中的對象的傳輸。例如: 複製代碼 代碼如下: var Animals = new Object(); Animals.name = “dog”; Animals.sex = “Male”; Animals.age = “二”; Animals對象無法被序列化傳輸,將Animals對象轉化為JSON字符串,也就是“{name:”dog”,sex:”Male”,age:”二”}”。這樣,把該JSON字符串作為HTTP請求的一個參數傳遞,從而達到序列化傳輸Animals對象的目的。 (ii)JSON通過字符串形式來表達JavaScript的對象。如: 複製代碼 代碼如下: var myObject = {nickname:”my girlfried”,name:”big pig”}; JSON 實際上充當了一種在JavaScript對象和字符串之間實現相互轉換的協議。由於JSON的“外表”可以看成但村的字符串,因此JSON在 JavaScript的對象傳輸方面可以起到一定的作用。例如把對象strObject轉換成字符串後進行傳輸,在達到目的地後通過eval方法將其還原 成對象: 複製代碼 代碼如下: function test (o) { alert (o.name) } var strObject = ‘{nickname:”my girlfriend”,name:”big pig”}’; test (eval_r(“(” + strObject + “)”)); 三、自定義對象構造 創建高級對象構造有兩種方式:使用“this”關鍵字構造、使用原型prototype構造。如: 複製代碼 代碼如下: //使用this關鍵字定義構造的上下文屬性 function Girl() { this.name = “big pig”; this.age = 二0; this.standing; this.bust; this.waist; this.hip; } //使用prototype function Girl(){} Girl.prototype.name = “big pig”; Girl.prototype.age = 二0; Girl.prototype.standing; Girl.prototype.bust; Girl.prototype.waist; Girl.prototype.hip; alert(new Girl().name); 上例中的兩種定義在本質上沒有區別,都是定義“Girl”對象的屬性信息。“this”與“prototype”的區別主要在於屬性訪問的順序。如: 複製代碼 代碼如下: function Test() { this.text = function() { alert(“defined by this”); } } Test.prototype.test = function() { alert(“defined by prototype”); } var _o = new Test(); _o.test();//輸出“defined by this” 當訪問對象的屬性或者方法是,將按照搜索原型鏈prototype chain的規則進行。首先查找自身的靜態屬性、方法,繼而查找構造上下文的可訪問屬性、方法,最後查找構造的原型鏈。 “this” 與“prototype”定義的另一個不同點是屬性的佔用空間不同。使用“this”關鍵字,示例初始化時為每個實例開闢構造方法所包含的所有屬性、方法 所需的空間,而使用“prototype”定義,由於“prototype”實際上是指向父級的一種引用,僅僅是個數據的副本,因此在初始化及存儲上都比 “this”節約資源
JS使用new操作符創建對象的方法分析
本文實例講述了JS使用new操作符創建對象的方法。分享給大家供大家參考,具體如下:
在編寫js代碼時,我們有時會需要使用函數來模擬java中的類,並用它來產生對象,在定義了一個構造函數之後我們需要使用new操作符來調用調用函數才能得到我們想要的對象。例如:
script
function
Constructor(name){
this.name
=
name
}
var
person1
=
Constructor(“張三”);//undefined
var
person2
=
new
Constructor(“張三”);//得到一個對象{name:”張三”}
console.log(person1);
console.log(person2);
/script
運行結果:
如果我們不使用new操作符調用函數,就只會簡單的執行函數,並把函數的返回值賦給person1,所以上面的例子中person1的值是undefined,.
如果我們使用new操作符調用構造函數,做了哪些事情呢?
1.構造函數沒有返回值
使用new操作符調用函數,會隱式的創建一個對象(我們這裡稱這個對象為obj),這個對象obj是連接到構造函數的原型上的,即obj會繼承構造函數原型上的屬性方法,並且構造函數中的this也被綁定到了這個對象上,執行完成後這個對象會被作為返回值返回。
2.構造函數有返回值(這種情況比較少,至少我沒用過)
new出來的值由返回值的prototype而定
例如:
function
Constructor(name){
this.name
=
name
return
this.name;
}
var
person
=
new
Constructor(“123”);//Constructor
{name:
“123”};Object,因為基本類型的prototype都是Object
function
Constructor(name){
this.name
=
name
return
new
String(this.name);
}
var
person
=
new
Constructor(“123”);//String
{0:
“1”,
1:
“2”,
2:
“3”,
length:
3,
[[PrimitiveValue]]:
“123”},
console.log(person);
運行結果:
感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具:測試上述代碼運行效果。
更多關於JavaScript相關內容還可查看本站專題:《javascript面向對象入門教程》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結》
希望本文所述對大家JavaScript程序設計有所幫助。
您可能感興趣的文章:用方法封裝javascript的new操作符(一)淺談javascript中new操作符的原理JS重學系列之聊聊new操作符js構造函數創建對象是否加new問題JavaScript中使用構造器創建對象無需new的情況說明JavaScript
三種創建對象的方法JS
創建對象(常見的幾種方法)js中創建對象的幾種方式示例介紹js創建對象的幾種常用方式小結(推薦)js面向對象之常見創建對象的幾種方式(工廠模式、構造函數模式、原型模式)javascript的函數、創建對象、封裝、屬性和方法、繼承
原創文章,作者:UFID,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/132864.html