插件窝 干货文章 JavaScript:函数、函数表达式、对象、方法和 this

JavaScript:函数、函数表达式、对象、方法和 this

函数 class function pre 538    来源:    2024-10-22

简单的基本功能

这是一个不带参数的简单函数:

function hello() {
  console.log('hello there stranger, how are you?');
}

hello();

这是一个带有一个参数的函数:

function greet(person) {
  console.log(`hi there ${person}.`);
}

greet('megan');

我们可以有多个参数,如下所示:

function greetfullname(fname, lname) {
  console.log(`hi there ${fname} ${lname}.`);
}

greetfullname('megan', 'paffrath');

函数表达式

函数表达式只是编写函数的另一种方式。他们的工作方式仍然与上面相同:

const square = function(x) {
   return x * x;
};

square(2); // 4

高阶函数

这些函数与其他函数一起运行/在其他函数上运行,也许它们:

  • 接受其他函数作为参数
  • 返回一个函数

将另一个函数作为参数的函数的示例是:

function calltwice(func) {
  func();
  func();
}

let laugh = function () {
  console.log('haha');
};

calltwice(laugh);
// haha
// haha

function rolldie() {
  const roll = math.floor(math.random() * 6) + 1;
  console.log(roll);
}

calltwice(rolldie);
// random number
// random number

函数返回函数的一个例子是:

function makemysteryfunc() {
  const rand = math.random();
  if (rand > 0.5) {
    return function () {
      console.log('you win');
    };
  } else {
    return function () {
      alert('you have been infected by a computer virus');
      while (true) {
        alert('stop trying to close this window.');
      }
    };
  }
}

let returnedfunc = makemysteryfunc();
returnedfunc();

另一个(更有用的例子)是:

function makebetweenfunc(min, max) {
  return function (num) {
    return num >= min && num 



<h2>
  
  
  方法
</h2>

<p>我们可以添加函数作为对象的属性(这些称为方法)。</p>

<p>例如:<br></p>

<pre class="brush:php;toolbar:false">const mymath = {
  pi: 3.14,
  square: function (num) {
    return num * num;
  },
  // note the 2 diff ways of defining methods
  cube(num) {
    return num ** 3;
  },
};

“this”主要在对象的方法中使用。它用于引用对象的属性。

const person = {
  first: 'abby',
  last: 'smith',
  fullname() {
    return `${this.first} ${this.last}`;
  },
};

person.fullname(); // "abby smith"
person.lastname = 'elm';
person.fullname(); // "abby elm"

注意,在对象之外,“this”指的是顶级窗口对象。要查看其中包含的内容,请在控制台中输入。通用函数也存储在 this 对象中:

// defined on its own (outside of an object)
function howdy() {
  console.log('HOWDY');
}

this.howdy(); // HOWDY