JavaScript上級編の関数(四)
5452 ワード
1、関数の作成
前にたくさんの関数が使われていますので、ここではなく、もっと共有します.
2、ネスト関数
Javascriptは直接量で関数を定義することができます.詳細:匿名関数は後で使います.分かります.
関数を呼び出すときのパラメータが声明のパラメータより少ない場合、他のパラメータはundefinedの値です.
ここを初めて見ましたが、どうやってパラメーターが変わりましたか?多白です.このargmentオブジェクトは関数パラメータの管理者です.例えば、関数があります.3つのパラメータを定義しています.argmentには定義されたパラメータと同じデータセットがあります.
注意してください.argments識別子は関数の中で有効です.関数の属性としてもいいです.
ここで言っている方法は、関数をオブジェクトの属性に格納し、属性によって呼び出します.関数は任意の変数に割り当てられます.
コンストラクタは、オブジェクトの属性を初期化して、new演算子と一緒に使用するコンストラクタです.new演算子はオブジェクトを作成して、コンストラクタを呼び出して、新しく作成したオブジェクトをthisの値として伝達します.
グローバル不変値を使用するには、Functionオブジェクトの属性が便利です.
これらの2つの方法を使用して、他のオブジェクトを呼び出す方法のように関数を呼び出すことができます.2つの方法の第1のパラメータは、呼び出す対象であり、後のパラメータは、呼び出す関数パラメータです.
前にたくさんの関数が使われていますので、ここではなく、もっと共有します.
2、ネスト関数
function china()
{
function people()// , china
{
document.write(" , , ");
}
people();
}
3、関数の直接量Javascriptは直接量で関数を定義することができます.詳細:匿名関数は後で使います.分かります.
function china(people) //
{
return peole;
}
var fun = function(people){return people;};// 。
4、関数のパラメータ(ここで注意してください)関数を呼び出すときのパラメータが声明のパラメータより少ない場合、他のパラメータはundefinedの値です.
//
function displayArray(arr)
{
if(!arr)return;
for(var num =0;num{
document.write("Num is "+ arr[num]+ "\t");
}
document.write(" "+"
");
}
var array = [2,32,14,57,6];
function borrowArray(from,/*optional*/to)
{
if(!to) to = []; //to = to||[]
for(var element in from) //
to.push(from[element]);//
return to;//
}
var returnnumber = borrowArray(array);//
displayArray(returnnumber);//
// :Num is 2 Num is 32 Num is 14 Num is 57 Num is 6
5、可変のパラメータ(Agmentsオブジェクト)ここを初めて見ましたが、どうやってパラメーターが変わりましたか?多白です.このargmentオブジェクトは関数パラメータの管理者です.例えば、関数があります.3つのパラメータを定義しています.argmentには定義されたパラメータと同じデータセットがあります.
注意してください.argments識別子は関数の中で有効です.関数の属性としてもいいです.
function checkArgument(x,y,z)
{
if(arguments.length != 3) throw new Error(" "); // , !
return x+y+z;
}
以下の例は、数値の大きさを比較する例であり、パラメータは変更可能である.
function compareMaxNumber()
{
var temp = Number.NEGATIVE_INFINITY;// javascript
for(var arg=0;arg{
if(arguments[arg]>temp) temp = arguments[arg];
}
return temp; //
}
document.write(compareMaxNumber(2,34,5,23,766,1000)+"
");// , 1000
6、対象属性をパラメータとして
function displayArray(arr) //
{
if(!arr)return;
for(var num =0;num{
document.write("Num is "+ arr[num]+ "\t");
}
document.write(" "+"
");
}
//
function copyArray(from,from_start,to,to_start,length)//
{
for(var i = from_start; i {
to.push(from[i]);//
}
return to;
}
//getArray
function getArray(objarray)
{
// , copyArray
return copyArray(objarray.from,objarray.from_start ||0,objarray.to|| [],objarray.to_start ||0,objarray.length);// 。
}
var arr1 = [1,2,3,4,5];
displayArray(getArray({from:arr1,length:4}));
6、データの関数として
function add(x,y){return x + y;}
function multply(x,y){return x*y;}
function cut(x,y){return x -y ;}
operator(operator1,operator2,operator3)// 3 , 。
{
return operator1(operator2,operator3);// add();
}
document.write(operator(add,operator(multply,2,4),operator(cut,12,2)));// 18
7、方法の関数としてここで言っている方法は、関数をオブジェクトの属性に格納し、属性によって呼び出します.関数は任意の変数に割り当てられます.
var obj = {};
function display() //(something)
{
return "Love";//something;
}
obj.method = display;// 。
obj.method();// 。obj.method("Love");
javascriptもthisのキーワードを引用しています.実際に呼び出し方の対象はthisの値です.Object.method()、ここでObjectは対象です.自然とthisの値です.
var privatename =
{name:"Frank",
age:21,
sex:' ',
display:function()
{document.write("my name is:"+this.name+"\t age :"+this.age)}};
privatename.display(); // name is:Frank age :21
8、コンストラクタコンストラクタは、オブジェクトの属性を初期化して、new演算子と一緒に使用するコンストラクタです.new演算子はオブジェクトを作成して、コンストラクタを呼び出して、新しく作成したオブジェクトをthisの値として伝達します.
function createProperty(name,version)//
{
this.name = name;
this.version = version;
}
var tools = new createProperty("Multply",1.0); , ,
9、関数の属性を定義するグローバル不変値を使用するには、Functionオブジェクトの属性が便利です.
createNamespace.name = "360buy.define";
createNamespace.version = 1.2;
function createNamespace()
{
document.write(" :"+createNamespace.name +" :" + createNamespace.version);
}
createNamespace();// : :360buy.define :1.2
10、方法アプリ()とコール()これらの2つの方法を使用して、他のオブジェクトを呼び出す方法のように関数を呼び出すことができます.2つの方法の第1のパラメータは、呼び出す対象であり、後のパラメータは、呼び出す関数パラメータです.
function applyCallOperator(args,args2)
{
document.write(args+"
");
}
var objpeople = {};
applyCallOperator.apply(objpeople.Frank,[3,4]);// applyCallOperator.call(objpeople.Frank,3,4) []
objpeople.Frank();
結び:これは皆さんのようにここに来てください.次の編は一緒にjavascript類を実現します.