zoukankan      html  css  js  c++  java
  • 方法的定义【js函数】

    注意: 方法定义不是构造函数

    一、语法:

    var obj = {
      property( parameters… ) {},
      *generator( parameters… ) {},
      async property( parameters… ) {},
      async* generator( parameters… ) {},
    
      // with computed keys:
      [property]( parameters… ) {},
      *[generator]( parameters… ) {},
      async [property]( parameters… ) {},
    
      // compare getter/setter syntax:
      get property() {},
      set property(value) {}
    };

    1)简单写法 

    var obj = {

    foo:
    function() { /* code */ }, bar: function() { /* code */ } }; //简写: var obj = {
    foo() {
    /* code */ }, bar() { /* code */ } };

    二、生成器方法;

    // 用有属性名的语法定义方法(ES6之前):
    var obj2 = {
      g: function*() {
        var index = 0;
        while(true)
          yield index++;
      }
    };
    
    // 同一个方法,简写语法:
    var obj2 = { 
      * g() {
        var index = 0;
        while(true)
          yield index++;
      }
    };
    
    var it = obj2.g();
    console.log(it.next().value); // 0
    console.log(it.next().value); // 1
    console.log(it.next().value); // 2
    console.log(it.next().value); // 3
    console.log(it.next().value); // 4

    注意: 简写语法中的星号(*)必须出现在生成器名前,也就是说* g(){}可以正常工作,而g *(){}不行。

    三、Async方法:

    // 用有属性名的语法定义方法(ES6之前):
    var obj3 = {
      f: async function () {
        await some_promise;
      }
    };
    
    // 同一个方法,简写语法:
    var obj3 = { 
      async f() {
        await some_promise;
      }
    };

     四、例子

    1)

    var obj = {
      a : "foo",
      b(){ return this.a; }
    };
    console.log(obj.b()); // "foo"

    2)

    var bar = {
      foo0: function() { return 0; },
      foo1() { return 1; },
      ['foo' + 2]() { return 2; }
    };
    
    console.log(bar.foo0()); // 0
    console.log(bar.foo1()); // 1
    console.log(bar.foo2()); // 2
  • 相关阅读:
    牛哄哄的 汉诺塔递归
    c 终端控制
    ubuntu apt源
    vim 用法
    纯js 判断表单为空 阻止 input 提交
    Yii2 文本框前加图标 input 添加属性的方法
    layer 弹窗 弹出层 iframe子页面获取父级页面id
    获取Yii2 常用 路径 目录 url
    Yii Activeform 表单
    Yii use namespace 命名空间
  • 原文地址:https://www.cnblogs.com/a1-top/p/14069075.html
Copyright © 2011-2022 走看看