国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Prototype 學習 工具函數(shù)學習($方法)

2019-11-21 01:16:36
字體:
供稿:網(wǎng)友
$
$$
$A
$F
$H
$R
$w
Try.these
document.getElementsByClassName
$方法――被成為瑞士軍刀(Swiss Army knife)
If provided with a string, returns the element in the document with matching ID; otherwise returns the passed element. Takes in an arbitrary number of arguments. All elements returned by the function are extended with Prototype DOM extensions.
復制代碼 代碼如下:

function $(element) {
if (arguments.length > 1) {
for (var i = 0, elements = [], length = arguments.length; i < length;
i++)
elements.push($(arguments[i]));
return elements;
}
if (Object.isString(element))
element = document.getElementById(element);
return Element.extend(element);
}

首先檢查傳進來的參數(shù)長度:

如果長度等于1,則判斷傳進來的參數(shù)是否為String,如果傳進來的是String,則調(diào)用getElementById方法取得相應的對象,最后讓返回的對象繼承Element的所有方法,這樣返回的對象將可以直接調(diào)用Element對象里面定義的各種方法。例如
復制代碼 代碼如下:

// Note quite OOP-like...
Element.hide('itemId');
// A cleaner feel, thanks to guaranted extension
$('itemId').hide();

如果長度大于1,則遞歸調(diào)用$方法(elements.push($(arguments[i]));)就是說傳進來的參數(shù)可以是多維數(shù)組:
$(['A','B',['C','D',['E','F']]]),當然了返回的也是對象數(shù)組了。
如果長度等于0,返回undefined,即直接調(diào)用alert($())
詳細看一下Object.isString方法:
復制代碼 代碼如下:

function isString(object) {
return getClass(object) === "String";
}

//=====> getClass()

function getClass(object) {
return Object.prototype.toString.call(object)
.match(/^/[object/s(.*)/]$/)[1];
}

主要是通過Object對象的內(nèi)部方法getClass來確定返回的對象是什么類型,在getClass中調(diào)用了Object的toString方法,然后通過正則表達式取出表示具體對象的字符串

Object.prototype.toString.call("2222") 返回"[object String]" 取得"String"

Object.prototype.toString.call(2222) 返回"[object Number]" 取得"Number"



Object.prototype.toString.call(/^$/) 返回"[object RegExp]" 取得"RegExp"

這里為什么要用Object的toString方法呢,因為如果直接調(diào)用"2222".toString()將返回"2222",也就是說從Object繼承而來的對象,重寫了toStirng方法,所以這里要調(diào)用Object的toString才行。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 托克托县| 青川县| 乾安县| 娱乐| 青铜峡市| 建瓯市| 沭阳县| 三穗县| 昌平区| 绥宁县| 安化县| 天长市| 四子王旗| 桐乡市| 文安县| 资源县| 长治县| 襄垣县| 阳新县| 东山县| 孟津县| 达拉特旗| 墨玉县| 徐州市| 新邵县| 德保县| 红安县| 嘉善县| 宁安市| 祁阳县| 色达县| 秭归县| 四平市| 庆阳市| 广元市| 丹阳市| 曲靖市| 卓尼县| 阳泉市| 特克斯县| 丹凤县|