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
  • 相关阅读:
    hdu 1392 fzu 1333 Surround the Trees 简单凸包
    STL的应用 multiset bitset next_permutation
    hdu 3711 Binary Number 位运算(^ 与&)的应用
    鸽舍原理
    hdu 4002 Find the maximum 2011 大连网络赛 1002 Find the maximum
    组合数学
    Delphi程序破解技术概要
    NET的URL怎么静态化?
    David I谈Delphi的现状及未来发展方向
    使用Dede破解Delphi软件实战
  • 原文地址:https://www.cnblogs.com/a1-top/p/14069075.html
Copyright © 2011-2022 走看看