站长网 资讯 JavaScript中的方法指的是什么我来为你解答

JavaScript中的方法指的是什么我来为你解答

副标题#e# 定义并调用一个常规函数: functiongreet(who){ return`Hello,${who}!`; } greet(World);//=Hello,World! function关键字后跟其名称,参数和主体:function greet(who){…}进行常规的函数定义。 greet(World)是常规的函数调用。函数greet(World)

副标题#e#

定义并调用一个常规函数:

function greet(who) { 

  return `Hello, ${who}!`; 

 

greet('World'); // => 'Hello, World!' 

function关键字后跟其名称,参数和主体:function greet(who){…}进行常规的函数定义。

greet('World')是常规的函数调用。函数greet('World')接受参数中的数据。

如果who是一个对象的属性呢?要方便访问对象的属性,我们可以将函数附加到该对象,换句话说,就是创建一个方法。

我们将greet()作为对象world的一种方法:

const world = { 

  who: 'World', 

 

 greet() { return `Hello, ${this.who}!`; }} 

 

world.greet(); // => 'Hello, World!' 

greet() { … }现在是属于world对象的方法, world.greet()是方法调用。

在greet()方法内部,this指向该方法所属的对象—world,这就是为啥可以this.who访问 word属性的原因。

注意,this也称为上下文。

上下文是可选的

在上一个示例中,我们使用this来访问该方法所属的对象,但是 JS 没有强制让方法使用 this。

因此,可以将对象用作方法的命名空间:

const namespace = { 

  greet(who) { 

    return `Hello, ${who}!`; 

  }, 

 

  farewell(who) { 

    return `Good bye, ${who}!`; 

  } 

 

namespace.greet('World');    // => 'Hello, World!' 

namespace.farewell('World'); // => 'Good bye, World!' 

namespace是一个包含2个方法的对象:namespace.greet()和namespace.farewell()。

2. 对象字面量方法

如前所述,我们可以直接在对象字面量中定义方法

const world = { 

  who: 'World', 

 

 greet() { return `Hello, ${this.who}!`; }}; 

 

world.greet(); // => 'Hello, World!' 

greet() { …. }是在对象定义的方法,这种定义类型称为速记方法定义(从ES2015开始可用)。方法定义的语法也更长:

const world = { 

  who: 'World', 

  greet: function() {  

    return `Hello, ${this.who}!`;  

  } 

 

world.greet(); // => 'Hello, World!' 

greet: function() { … }是一个方法定义,注意附加的冒号和function关键字。

动态添加方法

方法只是一个函数,它作为属性存储在对象上。因此,我们可以向对象动态添加方法:

const world = { 

  who: 'World', 

 

  greet() { 

    return `Hello, ${this.who}!`; 

  } 

}; 

 

// A a new property holding a function 

world.farewell = function () { 

  return `Good bye, ${this.who}!`; 

 

world.farewell(); // => 'Good bye, World!' 

3.类方法

在 JavaScript 中,类别语法定义了一个类别,该类别将用作其实例的模板。

类也可以有方法:

class Greeter { 

  constructor(who) { 

    this.who = who; 

  } 

 

#p#副标题#e#

 greet() { console.log(this === myGreeter); // logs true return `Hello, ${this.who}!`; }} 

 

const myGreeter = new Greeter('World'); 

myGreeter.greet(); // => 'Hello, World!'  

greet() { … }是在类内部定义的方法。

每次我们使用new操作符(例如myGreeter = new Greeter('World'))创建一个类的实例时,都可以在创建的实例上调用方法。

myGreeter.greet()是如何在实例上调用方法greet()的方法。重要的是方法内部的this等于实例本身:this等于greet() { … }方法内部的 myGreeter。

本文来自网络,不代表站长网立场,转载请注明出处:https://www.zwzz.com.cn/html/biancheng/zx/2021/0523/4112.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部