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

首頁 > 語言 > JavaScript > 正文

解析JavaScript中的不可見數(shù)據(jù)類型

2024-05-06 15:56:43
字體:
供稿:網(wǎng)友
這篇文章主要是對(duì)JavaScript中的不可見數(shù)據(jù)類型進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助

JS提供了一些內(nèi)置對(duì)象、函數(shù)和構(gòu)造器供我們編程,如Math、parseInt、Object、Array等。這些都是可見的,編程時(shí)可以使用的。比如我可以new Object 或 new Array。

有一些則是不可見的,這些對(duì)象只能由引擎在特殊的情形提供。這些類型的對(duì)象往往還被消減了一些功能。下面列舉一些

一、Arguments 類型
Arguments 類型 不能由程序員手動(dòng)創(chuàng)建其對(duì)象,即你不能 new Arguments() 。 它有且僅有一個(gè)對(duì)象arguments

復(fù)制代碼 代碼如下:


function func() {
    console.log(arguments[0])     // 1
    console.log(arguments.length) // 3
}
func(1, 2, 3)


arguments對(duì)象是在函數(shù)調(diào)用的時(shí)候創(chuàng)建的,只在函數(shù)內(nèi)部可見和使用。可以看到arguments很象Array,可以按索引取元素,也有l(wèi)ength屬性。但它不是Array,它沒有Array的有一些方法比如push、pop等。Arguments 在ES5 10.6 里定義。

二、bind返回的函數(shù)很特殊
bind是ES5給Function.prototype新增的一個(gè)方法,它和call/apply一樣在function上直接調(diào)用。它返回一個(gè)指定了上下文和參數(shù)的函數(shù)。

復(fù)制代碼 代碼如下:


function func(age) {
    console.log('name: ' + this.name + ', career: ' + age)
}
var person = {name: 'John McCarthy'}
var f1 = func.bind(person, 'computer scientist')
f1() // name: John McCarthy, career: computer scientist


可以看到返回的函數(shù)f1和普通函數(shù)一樣使用小括號(hào)執(zhí)行調(diào)用了。 一切正常,但下面的代碼會(huì)讓你大跌眼鏡

復(fù)制代碼 代碼如下:


function func(age) {
    console.log('name: ' + this.name + ', career: ' + age)
}
var person = {name: 'John McCarthy'}
var f1 = func.bind(person, 'computer scientist')
console.log(f1.prototype) // undefined


和上面代碼比較,就最后一句不同,沒有執(zhí)行f1(),而是打印出f1.prototype,發(fā)現(xiàn)是undefined。

奇怪嗎? 每個(gè)function不都有一個(gè)prototype屬性嗎,這是用來實(shí)現(xiàn)原型繼承的哦。的確,bind返回的function比較特殊,它沒有prototype。這種特殊的函數(shù)是由JS引擎創(chuàng)建的,客戶端程序員沒法通過函數(shù)聲明或函數(shù)直接量得到。

這一點(diǎn)在規(guī)范里有明確提示 ES5 15.3.4.5

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 武邑县| 手游| 拜泉县| 枣庄市| 合川市| 兴仁县| 元江| 鹤壁市| 紫阳县| 巴彦县| 中山市| 苏尼特右旗| 榕江县| 遵义县| 施甸县| 侯马市| 车险| 厦门市| 东乌| 宝清县| 黄石市| 特克斯县| 芒康县| 商水县| 彩票| 桦川县| 平利县| 昭觉县| 琼结县| 渝中区| 呈贡县| 娱乐| 泗洪县| 丰县| 石景山区| 漾濞| 开化县| 开化县| 赞皇县| 汉阴县| 裕民县|