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

首頁 > 語言 > JavaScript > 正文

有關于JS輔助函數inherit()的問題

2024-05-06 14:18:57
字體:
來源:轉載
供稿:網友

最近在閱讀《JavaScript權威指南》(第六版)在第六章P122有這么一段代碼:

代碼如下:
// 返回一個繼承自原型對象proto的屬性的新對象
// 這里可以用到ES5的Object.create()函數
function inherit(proto) {
//proto是一個對象,但不能是null
if(proto == null) throw TypeError();
if(Object.create) return Object.create(proto); //如果Object.create()存在,使用它
var t = typeof proto; //否則進一步檢查
if(t!=='object' && t!=='function') throw TypeError();
var F = function() {}; // 定義一個空構造函數
F.prototype = proto; // 將其原型屬性設置為proto
return new F(); // 使用F()創建proto的繼承對象
}

很明顯輔助函數的用途是創建一個繼承父類原型的新對象

問題

在關于下面的這句判斷時,一時無法理解

代碼如下:
var t = typeof proto; //否則進一步檢查
if(t!=='object' && t!=='function') throw TypeError();

我們的印象中原型對象應該是個Object或者直接是字面量,那么傳遞的參數類型會有“function”類型情況嗎

理解

函數也是對象,也可以有自己的屬性和方法。等等,這不是我們的靜態屬性和方法啊!這里是指把函數看成可以添加屬性的對象

代碼如下:
// 測試傳遞function類型
var func = function() {};
func.text = 'good work';
func.getText = function() {
return func.text;
};
console.log(typeof func); // 'function'
// 傳遞function類型,返回以func為原型的新對象
var subFunc = inherit(func);
console.log(subFunc.getText()); // 輸出:'good work'

好吧,一個證明說明。原來是可以傳遞'function'類型的

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 茶陵县| 肃宁县| 太湖县| 乌兰察布市| 蓬溪县| 宁强县| 榆社县| 太康县| 黄大仙区| 即墨市| 贵港市| 紫金县| 梁平县| 徐汇区| 榆中县| 桑植县| 沁水县| 共和县| 南昌县| 永平县| 嘉义市| 正阳县| 南部县| 乌海市| 龙井市| 花莲县| 盐边县| 乳山市| 济宁市| 舟曲县| 分宜县| 昔阳县| 平果县| 武平县| 岚皋县| 襄垣县| 左权县| 鲜城| 亳州市| 建阳市| 建阳市|