日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

【废弃】【WIP】JavaScript 函数

發布時間:2025/7/14 javascript 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【废弃】【WIP】JavaScript 函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

創建: 2017/10/09
更新: 2017/11/03 加上【wip】

廢棄: 2019/02/19 重構此篇。原文歸入廢棄

        ?增加【廢棄中】標簽與總體任務

結束: 2019/03/12 完成廢棄, 刪除【廢棄中】標簽, 添加【廢棄】標簽

結束: 2019/03/03 完成廢棄, 刪除【廢棄中】標簽, 添加【廢棄】標簽

【TODO】 // TODO: 第9章 關于函數的構造函數呼出與call, apply // TODO 8.7 補充即時函數用途 // TODO: 補充JavaScript編譯過程, p179 // TODO: 8.8及以后
?函數的定義
?所有聲明不分順序,自動排序
?普通聲明?function test(a) {
??? return a;
?}
?只有這種在定義后在程序任何位置都可以呼出
?函數字符來定義

?var sample = function(a) {
??? return a;
?}
?呼出: sample(123);

不會被預處理

?

?Object來定義

?var name = new function("x", "y", ... , "process")

?最后一個是處理,前面都是參數

?不會被預處理

?

?箭頭函數式來定義

?var sample = x => x*x;

?不會被預處理

??
?嵌套函數?函數內部的函數
?位置?函數內部
?只可以在函數內部的"最外側"(不能在if,for里面)
??同樣聲明上卷,作為函數內部的屬性
??只能從定義的函數內部呼出
??
??
??
??
??
??
??
??
??
?函數的呼出
?函數的呼出方法?function sample() {}
?最普通的?sample();
?屬性函數?object.func_name();
?呼出構造函數?new Object(); // TODO: 第9章
?call, apply?// TODO: 第9章
??
??
??
??
??
??

?即時函數

?(無名函數)

?定義與呼出同時進行
?
?普通?var f = function() {...};
?f();
?其他寫法?(function() {...}) ();
??(function() {...} ());
??+function() {...} ();
?個人喜歡的寫法

?可以帶名字,只有函數內部可以用該名稱

?

? +function a(args) { a(); } (args);
?用途?構造不污染全局空間的命名空間
// TODO 8.7 補充即時函數用途
??
??
??
??
??
??
??
?函數的參數
? 參數的省略?省略掉的為undefined
?undefined是沒有賦值
?null是賦予的是空值
?不固定長度的參數?所有函數內部可用arguments
??Arguments Object
?自帶屬性?
?length?參數數量
?callee?現在執行的函數
??
??
??
?獲取參數的方法?arguments[0]
?arguments[1]
?...
?轉換成數組?var params = [].slicce.call(arguments);
?定義無限長的參數的函數

?用arguments獲取參數?

function sample(a) {var result = a;for(var i = 1; i < arguments.length; i++) {s += arguments[i];}return result; }

?

?

??
??
??
??
??
?傳值和傳參?object參數傳送的是參照(指針)
??
??
??
??
??
??
??
??
??
??
??
??
??
??
??
?遞歸函數
?三種寫法?
?普通??function sample(...) {
? ? if (...) {
sample(...);
? ? }
?}
?帶一個本地可用名的無名函數?var sample = function f(...) {
? ? if (...) {
? ? ? ?f(...);
? ? }
?}
?不帶本地名的無名函數?var sample = function(...) {
? ? if (...) {
? ? ? ?arguments.callee(...);
? ? }
?}
??
??
??
??
??
??
??
??
??
??
??
??
??
??
??
??
??
??
??
?程序的編譯與運行
?生成全局對象?
?解析程序?
?運行程序?
?單線程?
?call對象及本地變量?
?this的值

?被呼出函數所屬對象

?函數內部函數的this是全局變量

?命名空間

?

var a = "a"; function f() {var b = "b";function g() {var c = "c";console.log(a+b+c);} } f();

?

?

?垃圾回收

?釋放從全局對象無法到達的量

?不用在意?

??
??
??
??
??
??
??
??
??
??
?閉包
??JavaScript的所有函數都是閉包
?閉包內部可以有函數(閉包)
?應用?
??
??
??
??
??
??
??
??
??
??
??
??
??
??
??
??
?命名空間
??
?用對象管理程序本地代碼?
?用函數管理?+function () { ... } ();?




??
??
??
??

?

?用對象管理程序本地代碼? var myApp = myApp || {}; myApp.login = ...; myApp.configs = {}; //部分空間內部再劃分部分空間

?


?所有東西追加成屬性
?用函數作為命名空間? (function () {// 程序所有內容寫在這里 })();

?

module模式

// 作為即時函數,把module相關傳遞給指定參數 var Module = Module || {}; (function (_module) {var name = "none"; // 私有變量function getName () { // 私有方法return name;}_module.showName() = function () { // 公共方法 console.log(getName());}})(Module);

?

?

??
??
??
??
??
??
??
??
??
??
??
??
??
??
?作為對象(Object)的函數
?函數也是對象

?● 可以代入變量,對象屬性, 數組元素

?● 可以作為函數的參數, 返回值

?● 可以有屬性和方法

?● 可以作為不帶名字的字符, 即無名函數 function () {}

?● 可以動態生成

?函數的屬性(property)

?

?caller?呼出現在運行的函數的函數
?length?參數表長度
?name?函數名
?prototype

?prototype對象

?apply()

?指定this和參數運行函數

?參數用數組指定?

function test(a, b) { ... } test.apply(thisTarget, [a, b]);

?

?call()

?指定this和參數運行函數

?參數以正常函數呼出形式指定

test.apply(thisTarget, a, b);

?

?bind()

?把函數的this綁定指定對象, 返回生成的新函數

function test() { return this.name } var tom = { name: "none" }; var newTest = test.bind(tom);

?

?constructor()?Function constructor的參照
?toString()?把函數源代碼以String形式返回
??

?

?

?添加自定義屬性? function test() {...} test.newProperty = "sample"; // 和其他對象添加屬性一樣寫法

?

??
??
??
??
??
??
??
??
??
??
??
??
??
?高階函數
?定義?以函數為參數或返回值的函數
??
??
??
??
??
??
??
??
??
??
??
??
??
??
??
??
??
?回調函數
??
??
??
??
??
??
??
??
??
??
??
??
??
??
??
??
??
??
?ES6關于函數的擴張
??
??
??
??
??
??
??
??
??
??
??
??
??
??
??
??
??
??

?

轉載于:https://www.cnblogs.com/lancgg/p/8281703.html

總結

以上是生活随笔為你收集整理的【废弃】【WIP】JavaScript 函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。