Muungano wa kufanyia kwa funguo wa JavaScript

JavaScript 函数内部的代码会在“某物”调用它时执行。

调用 JavaScript 函数

在函数被定义时,函数内部的代码不会执行。

在函数被调用时,函数内部的代码会被执行。

调用函数通常也可以说“启动函数”或“执行函数”。

在本教程中,我们使用“调用”。

以函数形式调用函数

实例

function myFunction(a, b) {
    return a * b;
}
myFunction(10, 2);           // 将返回 20

亲自试一试

以上函数不属于任何对象。但是在 JavaScript 中,始终存在一种默认的全局对象。

Kwenye HTML, kipengele cha jumla cha ujenzi ni sayari ya HTML, kila kikifaa kina kuzungumza kama sayari ya HTML.

Kwenye kifungu cha mtangazaji, hii kipengele cha sayari ni ndoa wa kifungu cha sayari. Kikifaa kina kuzungumza kama kifungu cha ndoa.

myFunction() na window.myFunction() ni programu zingine zilizotumika:

实例

function myFunction(a, b) {
    return a * b;
}
window.myFunction(10, 2);    // inaitiahesha 20

亲自试一试

Hii inaonekana kama sababu ya kusababisha programu kwa kumekadiri kwenye programu.

Hii inaonekana kama sababu ya kusababisha programu kwa kumekadiri kwenye programu.

this Mavuvu ya kijamii, programu au programu za kifaa inaweza kumekadiri kwenye muundo wa kijamii na vifungo.

keyword this Kwenye JavaScript, inajulikana kama

this kwa muundo fulani, inaonyesha muundo wa kifaa ambao inaenea kwa programu hii.

inalesha, kwenye programu inayotumika, ni muundo wa kifaa ambao inaenea kwa programu. this Tafadhali ingaa this inalesha. Hii inaonekana kama variable. Hii inaenea kwa keyword. Huwezi kumaliza

muundo wa kijamii

Kutumia kifaa kwenye kifaa kwenye kifaa kwenye kifaathis inalesha kuwa muundo wa kijamii.

Kwenye web browser, muundo wa kijamii ni muundo wa browser.

Mfano hii inaitiahesha this inalesha inaitiahesha muundo wa window:

实例

var x = myFunction();            // x inaitiahesha muundo wa window
function myFunction() {
   return this;
}

亲自试一试

Kutumia programu kama programu ya kijamii, inaweza kumfanya kusababisha kumekadiri kwenye muundo wa kijamii. this inalesha kuwa muundo wa kijamii.

Kutumia window object kama variable ni msaada wa kumaliza programu.

Kutumia programu kama programu ya kifaa

Kwenye JavaScript, unaweza kuwa na programu kama programu ya kifaa.

Mfano wa kuzungumza kinaobject (myObject), na vitu vingine vingi (firstName na lastName), na programu (fullName):

实例

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

亲自试一试

fullName method inaonekana kama programu ya kifaa. Hii inaenea kwa muundo. myObject ni muundo wa kifaa.

inajulikana kama this kwa muundo fulani, ni kuwa kuwa naa hata hivyo kama inayohusiana na JavaScript 代码 ya inayohusiana. Kwa matokeo hii,this inalesha ni myObject。

Tafuta tena! Hifadhi hii fullName method kwa kuwa kirejea this inalesha:

实例

var myObject = {
    firstName: "Bill",
    lastName: "Gates",
    fullName: function () {
        return this;
    }
}
myObject.fullName();          // inaitiahesha [object Object] (muundo wa inayohusiana)

亲自试一试

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

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

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

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

实例

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

亲自试一试

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

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

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