在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ HTML/ 淺談 javascript 函數(shù)屬性和方法
淺談 JavaScript 之事件綁定
淺談 javascript 中字符串 String 與數(shù)組 Array
淺談 javascript 中基本包裝類型
淺談 JavaScript Math 和 Number 對象
淺談 Javascript 的靜態(tài)屬性和原型屬性
淺談 JavaScript 中定義變量時有無 var 聲明的區(qū)別
淺談 JavaScript Array 對象
淺談 JavaScript 函數(shù)參數(shù)的可修改性問題
淺談 javascript 中的 instanceof 和 typeof
淺談 JavaScript 中 Date (日期對象),Math 對象
淺談 Javascript 執(zhí)行順序
淺談 javascript 函數(shù)屬性和方法
淺談 JavaScript 中面向?qū)ο蠹夹g(shù)的模擬
淺談 javascript 的原型繼承
淺談 javascript 事件取消和阻止冒泡
根據(jù)一段代碼淺談 Javascript 閉包
淺談 Javascript 面向?qū)ο缶幊?/span>
淺談 javascript 六種數(shù)據(jù)類型以及特殊注意點
淺談 Javascript 變量作用域問題
淺談 javascript 函數(shù)內(nèi)部屬性
淺談 javascript 中自定義模版
淺談 JavaScript 字符集
淺談 javascript 面向?qū)ο缶幊?/span>
淺談 JavaScript 框架分類
淺談 JavaScript 中的 Math.atan() 方法的使用
淺談 Javascript 數(shù)組與字典
淺談 JavaScript 數(shù)據(jù)類型及轉(zhuǎn)換
淺談 javascript 的調(diào)試
淺談 Javascript 嵌套函數(shù)及閉包
淺談 javascript 回調(diào)函數(shù)
淺談 JavaScript Date 日期和時間對象
淺談 Javascript 中的 Function 與 Object
淺談 JavaScript 數(shù)據(jù)類型
淺談 javascript 中 this 在事件中的應(yīng)用
淺談 javascript 中的閉包
淺談 javascript 函數(shù)劫持
淺談 Javascript 中深復(fù)制
淺談 JavaScript 函數(shù)節(jié)流
淺談 JavaScript 中的 String 對象常用方法
淺談 JavaScript 事件的屬性列表
淺談 JavaScript 函數(shù)與棧
淺談 JavaScript 的事件
淺談 javascript 中的作用域
淺談 JavaScript 的執(zhí)行效率
淺談 Javascript 事件模擬
淺談 JavaScript function 函數(shù)種類
淺談 javascript 歸并方法
淺談 javascript 迭代方法
淺談 JavaScript 編程語言的編碼規(guī)范
淺談 JavaScript 實現(xiàn)面向?qū)ο笾械念?/span>
淺談 Javascript 鼠標(biāo)和滾輪事件
淺談 Javascript Base64 加密解密
淺談 Javascript 中勻速運動的停止條件
淺談 javascript 實現(xiàn)八大排序
淺談 javascript 的分號的使用
淺談 javascript 中 createElement 事件
淺談 javascript 的數(shù)據(jù)類型檢測
淺談 javascript 對象模型和 function 對象
淺談 Javascript 如何實現(xiàn)勻速運動
淺談 JavaScript 字符串與數(shù)組
淺談 javascript 面向?qū)ο蟪绦蛟O(shè)計
淺談 Javascript 事件處理程序的幾種方式

淺談 javascript 函數(shù)屬性和方法

每個函數(shù)都包含兩個屬性:length 和 prototype

length:當(dāng)前函數(shù)希望接受的命名參數(shù)的個數(shù)

prototype:是保存他們所有實力方法的真正所在

[js] view plaincopy
function sayName(name) {  

            alert(name);  

        }  

        function sum(num1, num2) {  

            return num1 + num2;  

        }  

        function sayHi() {  

            alert("hi");  

        }  

        alert(sayName.length);//1 參數(shù)個數(shù)一個  

        alert(sum.length);//2 參數(shù)個數(shù)2個  

        alert(sayHi.length);//0 沒有參數(shù)  

每個函數(shù)都包含兩個非繼承而來的方法:apply() 和 call()

這兩個方法都是在特定的作用域中調(diào)用函數(shù),實際上等于設(shè)置函數(shù)體內(nèi) this 對象的值

首先 apply() 接受兩個參數(shù):一個是函數(shù)運行的作用域,另一個參數(shù)數(shù)組(可以是數(shù)組實例也可以是 arguments 對象)

[js] view plaincopy
function sum(num1, num2) {  

            return num1 + num2;  

        }  

        function callSum1(num1, num2) {  

            return sum.apply(this, arguments);//傳入arguments對象  

        }  

        function callSum2(num1, num2) {  

            return sum.apply(this, [num1, num2]);  

        }  

        alert(callSum1(10, 10));//20  

        alert(callSum2(10, 20));//30  

其次,call 方法第一個參數(shù)沒有變化,變化的是其余的參數(shù)都是傳遞參數(shù),傳遞給函數(shù)的參數(shù)需要逐個列舉出來

[js] view plaincopy
function sum(num1, num2) {  

            return num1 + num2;  

        }  

        function callSum(num1, num2) {  

            return sum.call(this, num1, num2);  

        }  

        alert(callSum(10, 200));  

至于使用哪個方法更方便,完全取決于你的意愿。如果沒有參數(shù),用哪個都一樣。

但是,apply 和 call 方法的出現(xiàn)絕對不是只是為了怎樣去船體參數(shù)。

它們真正的用武之地在于擴充函數(shù)賴以運行的作用域。

[js] view plaincopy
window.color = "red";  

        var o = {color: "blue"};  

        function sayColor() {  

            alert(this.color);  

        }  

        sayColor();//red  

        sayColor.call(this);//red  

        sayColor.call(window);//red  

        sayColor.call(o);//blue  

使用 apply 和 call 來擴充作用域的最大的好處就是不需要與方法有任何的耦合關(guān)系。

ECMAScript5 還定義了一個方法:bind()。這個方法會創(chuàng)建一個函數(shù)的實例,其 this 值會被綁定到傳給 bind 函數(shù)的值

[js] view plaincopy
window.color = "red";  

        var o = {color: "blue"};  

        function sayColor() {  

            alert(this.color);  

        }  

        var bindFun = sayColor.bind(o);  

        bindFun();//blue  

以上就是本文的全部內(nèi)容,希望小伙伴們能夠喜歡。