函式的三種定義,閉包和宣告物件的方式總結

2021-10-23 16:16:02 字數 3146 閱讀 2131

字面量

function宣告

function add()

add();

var賦值表示式

var add=function(argument);

add();

var add=function fn(argument)

add();

建構函式

new function(『num1』,『num2』,『return num1+num2;』);

add();

閉包:閉包是乙個擁有許多變數和繫結了這些變數的環境的表示式(通常是乙個函式)

變數作用域:

全域性變數

區域性變數

//閉包 全域性變數在函式內部可以訪問

var n=999;

function f1()

f1();

function f1()

f1();

alert(n);///n沒有定義

//js—》 在f1裡面 再定義乙個函式

例:function a()

return b;

}var c=a();

c();//1

閉包的優缺點

優點:有利於封裝,可以訪問區域性變數

缺點:記憶體占用浪費嚴重,記憶體洩漏

js字面式宣告物件

var obj =,…}

例:var person =

play:function(game)

}alert(person.name);

person.eat(「麵條」);

new操作符後跟object建構函式

var obj=new object();

obj.屬性=屬性值;

obj.屬性=屬性值;

obj.方法=function(str);

例:var box=new object();

box.name=「zhangsan」;

box.age=100;

box.infos=function(str)

alert(box.name);

var con=box.infos(「吃飯吶」);

alert(con);

js中構造方法宣告物件

function test([引數列表])

}var obj=new test(引數列表);

例:function』 person(name,***,age)

}var obj1=new person(「zhangsan」,「nan」,18);

alert(obj1.name);

obj1.show();

var obj2=new person(「lisi」,「nv」,20);

obj2.show();

js中工廠方式宣告物件

function createobject(name,age);

return obj;

}var box1=createobject(『zhangsan』,100);

var box2=createobject(『lisi』,200);

例:function createobject(name,age)

obj.say=function()

return obj;

}var box1=createobject(「zhangsan」,18);

alert(box1.name);

alert(box1.run());

var box2=createobject(「lisi」,20);

alert(box2.name);

alert(box2.say());

構造和工廠模式不同:

1.構造方式不會顯示建立物件,將屬性值給this,不需要return物件

2.工廠 在方法內部建立 object物件 ,返回object物件,屬性和方法都是賦給object物件

js中原型模式宣告物件

function test()

test.prototype.屬性=屬性值;

test.prototype.屬性=屬性值;

test.prototype.方法名稱=function()

var obj=new test();

//讓所有例項化的物件都擁有它包含的屬性及方法。

例1:function test(){}

//alert(test.prototype instanceof object);//自帶該物件 prototype是object子物件

test.prototype.color=「red」;

test.prototype.heighrs=「1.7」;

test.prototype.widths=「1.2」;

test.showinfo=function()

test.getinfo=function()

var car1 =new test();

alert(car1.color);

car1.showinfo();

car1.getinfo();

例2function test(){}

//json資料定義屬性和方法

test.prototype=

}var car1 =new test();

alert(car1.color);

car1.showinfo();

car1.getinfo();

js中混合模式宣告物件

function test(v1,v2,v3)

test.prototype.方法名稱=function()

var obj=new blog(v1,v2,v3);

例://混合模式:構造+原型

function blog(name,url,friend)

blog.prototype=,

get:function()

}var peo =new blog(「zhangsan」,「

alert(peo.name);

alert(peo.test);

peo.showinfo();

C語言函式的定義和宣告。

函式的定義 函式的定義就是函式體的實現。函式體就是乙個 塊,它在函式被呼叫時執行,與函式定義相反的是,函式宣告出現在函式被呼叫的地方。函式宣告向編譯器提供該函式的相關資訊,用於確保函式被正確的呼叫。那麼函式到底是如何定義的呢?請看下面的語法 型別 函式名 形式引數 塊最簡單的 function na...

JS的三種函式宣告

js有3種方法進行函式宣告。1 function語句型別函式宣告 function test1 函式的呼叫方式 test1 2 函式的直接量形式 var test2 function 函式的呼叫方式 test2 3 建構函式式 var test3 new function a b return a ...

js的三種函式宣告

方式一 function a e,f,h 方式二 var b function 方式三 var c new function a b c alert 我是方法c.a b c 函式的呼叫 1 按照引數列表的順序賦值如 a 1,2,3 2 var testb function 這樣的方式也是可以呼叫函式...