Pagsasagawa ng Function ng JavaScript

Ang code sa loob ng function ng JavaScript ay gagawin kapag 'nililipat' ito ng 'anumang bagay'.

Tawagan ang function ng JavaScript

Sa panahon na ang function ayIdefinirang code sa loob ng function ay hindi gagawin.

Sa panahon na ang function ayTawagankapag, ang code sa loob ng function ay gagawin.

Ang pagtawag sa function ay maaaring sabihin din na 'pagsisimula ng function' o 'pagsasagawa ng function'.

Sa tutorial na ito, gumagamit kami ng “Tawagan”。

Tawagan ang function sa paraan ng function

实例

function myFunction(a, b) {
    return a * b;
}
myFunction(10, 2);           // Ay magiging 20 ang ibabalik

亲自试一试

Ang mga function na ito ay hindi nasa anumang object. Ngunit sa JavaScript, palaging mayroong default na global na object.

Sa HTML, ang default na global na object ay ang pahina ng HTML, lahat ng function na nasa ita ay 'kaugnay' sa pahina ng HTML.

Sa browser, ang object ng pahina na ito ay ang window ng browser. Ang function na ito ay awtomatikong naging function ng window.

Ang myFunction() at window.myFunction() ay magkaparehong function:

实例

function myFunction(a, b) {
    return a * b;
}
window.myFunction(10, 2);    // Ito ay ibabalik din ang 20

亲自试一试

Ito ang karaniwang paraan ng pagtawag ng function, ngunit hindi ito magandang ugali.

Ang global variable, method o function ay madaling maging magkaroon ng konflikto ng pangalan at mga lapak sa global na objekto.

this keyword

Sa JavaScript, tinatawag na this ang bagay, ay tinatawag na ang objekto na may-ari ng kasalukuyang code.

this ang halaga, kapag ginagamit sa function, ay ang objekto na may-ari ng function.

Pansin mo po this Hindi ito variable. Ito ay keyword. Hindi mo magagawa magpalit this ang halaga.

ang global na objekto

Kapag tinawag ang objekto ng walang may-ari objectthis ang halaga ay magiging global na objekto.

Sa web browser, ang global na objekto ay ang browser object.

Ang halimbawa na ito ay gumagamit ng this ang halaga ay ibabalik ang window object na ito:

实例

var x = myFunction();            // Ang x ay magiging objekto ng window
function myFunction() {
   return this;
}

亲自试一试

Ang pagtawag ng function bilang global na function ay magiging this ang halaga ay magiging global na objekto.

Sa pamamagitan ng paggamit bilang variable ng window object ay madaling masira ang programa.

Tumawag bilang method ang function

Sa JavaScript, maaari mong ituring ang function bilang method ng objekto.

Ang halimbawa sa ibaba ay naglikha ng isang objekto (myObject), may dalawang attribute (firstName at lastName), at isang method (fullName):

实例

var myObject = {
    firstName: "Bill",
    lastName: "Gates",
    fullName: function () {
        return this.firstName + " " + this.lastName;
    }
}
myObject.fullName();         // Magiging "Bill Gates" ang ibabalik

亲自试一试

Ang method na fullName ay isang function. Ang function ay kasama ng objekto. Ang myObject ay ang may-ari ng function.

tinatawag na this ang bagay, ay ang "pagmamay-ari" ng script na ito sa JavaScript. Sa halimbawa,this ang halaga ay myObject.

Subukin nang mag-ingat! Ayusin ang method na fullName upang ibabalik this ang halaga:

实例

var myObject = {
    firstName: "Bill",
    lastName: "Gates",
    fullName: function () {
        return this;
    }
}
myObject.fullName();          // Magiging [object Object] ang ibabalik (ang may-ari ng objekto)

亲自试一试

以对象方法来调用函数,会导致 this 的值成为对象本身。

通过函数构造器来调用函数

如果函数调用的前面是 new 关键字,那么这是一个构造函数调用。

它看起来像你创建一个新的函数,但由于 JavaScript 函数是对象,你实际上创建一个新对象:

实例

// 这是函数构造器:
function myFunction(arg1, arg2) {
    this.firstName = arg1;
    this.lastName  = arg2;
}
// 创建了一个新对象:
var x = new myFunction("Bill", "Gates");
x.firstName;                             // 会返回 "Bill"

亲自试一试

构造器调用会创建新对象。新对象会从其构造器继承属性和方法。

构造器内的 this 关键词没有值。

this 的值会成为调用函数时创建的新对象。