1、函式呼叫
呼叫乙個函式將暫停當前函式的執行,傳遞控制權和引數給新函式。除了函式宣告時定義的形參,每個函式還接受兩個附加的引數:this和arguments(arguments並不是乙個真正的陣列,它擁有length屬性,但它缺少陣列的所有方法)。引數this在物件導向程式設計中非常重要,它的值取決於呼叫的模式。
超出的引數會被忽略,如果過少,缺失的值被undefined代替。
2、方法模式
var myobj =
};myobj.increment();
document.write(myobj.value);//1
myobj.increment(2);
document.write(myobj.value);//3
方法可以使用this去訪問,所以它能從物件取值或修改該物件。this到物件的繫結發生在呼叫的時候。這個「超級」遲繫結使得函式可以對this高度復用。通過this可取得它們所屬物件的上下文的方法稱為公共方法。
3、函式模式
var name = "zhangsan";//aa變數載入到了window物件上
function test();
test1();
}
test();
當函式以此模式呼叫時,this被繫結到全域性物件。這是語言設計的乙個錯誤。倘若語言設計正確,當內部函式被呼叫時,this應該仍然繫結到外部函式的this變數。這個設計錯誤的後果是方法不能利用內部函式來幫助它工作,因為內部函式的this被繫結了錯誤的值,所以不能共享該方法對物件的訪問權。
幸運的是,有乙個很容易的解決方案:如果該方法定義乙個變數並給它賦值為this,那麼內部函式就可以通過那個變數訪問到this,按照約定,我給那個變數命令為that
//目的:使用add方法對數值進行相加
//給myobject增加乙個double方法。
myobject.double = function();
helper();//以函式的形式呼叫helper
};//以方法模式呼叫double
myobject.double();
document.write(myobject.getvalue());//6,這樣helper方法可以使用this
4、構造器模式
物件例項呼叫原型中的方法時,該方法可以使用this訪問其建構函式內的屬性或方法。
//建立乙個名為quo的建構函式,它構造乙個帶有status屬性的物件。
var quo = function (str,name);
//給quo的所有例項提供乙個名為get_status的公共方法。
quo.prototype.get_status = function();
object.prototype.get_name = function();
//構造乙個quo例項
var myquo = new quo("confused","zhangsan");
//confused,document.write()和document.writeln都是js向客戶端寫入的方法,writeln是以行方式輸出的,但並不是指頁面實際效果中的換行,即頁面的實際效果是沒有換行的。
document.writeln(myquo.get_status());
document.write(myquo.get_name());//zhangsan
var mystatus = ;//mystatus並沒有繼承自ouo.prototype。但我們可以在mystatus上呼叫get_status方法,儘管mystatus並沒有乙個名為get_status的方法
js 函式的呼叫
function jc n else 此處也就是函式jc n var result jc 10 方法一 函式名 實參列表 console.log result function foo a,b,c foo 1,2,3 foo.call 1,2,3 方法二 函式名.call 執行環境物件,實參列表 此...
js函式的呼叫
一 函式 1.輸入兩個,再輸入運算子,得到結果 view code 自定義函式 view code 2.如果其他的檔案需要使用函式怎麼做?myfunction.jsp function jisuan num1,num2,operaor else return result view code htm...
js函式的呼叫
j ascript函式有四種呼叫方法,每種方式的不同在於this的初始化。1 作為乙個函式呼叫,預設為全域性物件。this的值為全域性物件 在 html 中預設的全域性物件是 html 頁面本身,所以函式是屬於 html 頁面。在瀏覽器中的頁面物件是瀏覽器視窗 window 物件 以上函式會自動變為...