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

首頁 > 語言 > JavaScript > 正文

JavaScript函數的特性與應用實踐深入詳解

2024-05-06 15:43:41
字體:
來源:轉載
供稿:網友

本文實例講述了JavaScript函數的特性與應用實踐。分享給大家供大家參考,具體如下:

函數用于指定對象的行為。所謂的編程,就是將一組需求分解為一組函數和數據結構的技能。

1 函數對象

JavaScript 函數就是對象。對象是名值對的集合,它還擁有一個連接到原型對象的鏈接。對象字面量產生的對象連接到 Object.prototype,而函數對象連接到 Function.prototype(這個對象本身連接到 Object.prototype)。每個函數在創建時會附加兩個隱藏屬性:函數的上下文以及實現函數的代碼。

函數對象在創建后會有一個 prototype 屬性,它的值是一個擁有 constructor 屬性、且值既是該函數的對象。

因為函數是對象,所以可以被當做參數傳遞給其他函數。它也可以再返回函數。

2 函數字面量

函數可以通過字面量進行創建:

var add = function (a, b) {  return a + b;}

這里沒有給函數命名,所以稱它為匿名函數。

一個內部函數除了可以訪問自己的參數和變量之外,還可以訪問它的父函數的參數和變量。通過函數字面量創建的函數對象包含一個連接到外部上下文的連接,這被稱為閉包。它是 JavaScript 強大表現力的來源。

3 調用

調用一個函數會暫停當前函數的執行,它會傳遞控制權和參數給這個被調用的函數。

當函數的實際參數的個數與形式參數的個數不匹配時,不會導致運行時錯誤。如果實際參數的個數過多,那么超出的參數會被忽略;如果實際參數的個數過少,那么缺失的值會是 undefined。不會對參數類型進行檢查,所以任何類型的值都可以被傳遞給任何參數。

3.1 方法調用模式

當一個函數被保存為對象的一個屬性時,就稱它為方法。當方法被調用時,this 被綁定到這個對象。如果調用表達式包含一個提取屬性的動作(即包含一個”.” 點表達式或 “[]” 下標表達式),那么它就是被當做一個方法被調用。

var myObject = {  value: 0,//屬性  increment: function (inc) {//方法    this.value += typeof inc === 'number' ? inc : 1;  }};myObject.increment();console.log(myObject.value);//1myObject.increment(2);console.log(myObject.value);//3

這里可以使用 this 來訪問自己所屬的對象。通過 this 可以取得它們所屬對象的上下文的方法被稱為公共方法。

3.2 函數調用模式

var add = function (a, b) {  return a + b;}var sum = add(3, 4);//7;this 被綁定到全局對象

這里的 this 被綁定到全局對象,這其實是語言設計上的失誤!如果設計正確,那么當內部函數被調用時,this 應該被綁定到外部函數的 this 變量才是。可以這樣解決:為這個方法定義一個變量并給它賦值為 this,這樣內部函數就可以通過這個變量訪問到 this 啦,一般把這個變量命名為 that:

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

圖片精選

主站蜘蛛池模板: 大庆市| 吐鲁番市| 高碑店市| 梧州市| 建始县| 新兴县| 纳雍县| 甘南县| 赤水市| 武威市| 桂平市| 枣庄市| 齐河县| 木兰县| 塔河县| 河西区| 西昌市| 云南省| 江源县| 宁波市| 汕头市| 金堂县| 华阴市| 滕州市| 大竹县| 惠东县| 长沙市| 石河子市| 苏尼特左旗| 浙江省| 奈曼旗| 都匀市| 郓城县| 启东市| 垣曲县| 铜川市| 丰顺县| 涿鹿县| 许昌县| 曲沃县| 宣威市|