• 技术文章 >web前端 >前端问答

    es6静态属性和实例属性的区别是什么

    青灯夜游青灯夜游2022-04-13 13:52:54原创125

    区别:1、静态属性是类自身的属性,只能在类自身调用,而实例属性是实例对象的属性;2、实例对象无法调用静态属性,但类可调用实例属性;3、静态属性只有一种声明方法,语法“类名.属性名=值”,而实例属性有多种声明方法,例类中用“属性名=值”定义。

    本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。

    静态的就是不会被实例继承的,是属于类自身的,实例继承不了,也调用不了,跟作用域一样。

    声明静态属性:

    就和普通的Object添加属性一样,object.a = 值;(目前唯一一种方法);有人提议在类内部加static关键字,但是还没实现

    class F{};
    F.b="父类的静态属性";//给F类加静态方法

    声明静态方法:在方法前加上static关键字

    class Foo {
      static bar () {//静态方法  静态方法中的this指向类本身而不是实例
        this.baz();
      }
      static baz () {//静态方法
        console.log('hello');
      }
    }
     
    Foo.bar() // hello
    new Foo().bar();//实例调用不了,会报错

    声明实例属性:

    1,在类中定义

    class MyClass {
      myProp = 42;
     
      constructor(props) {
        console.log(this.myProp); // 42
      this.name=props.name
    
      }
    }
     
    //上面代码中,myProp就是MyClass的实例属性。在MyClass的实例上,可以读取这个属性。

    2,在constructor中定义(react中经典写法)

    class ReactCounter extends React.Component {
      constructor(props) {
        super(props);//可以让子类继承
        this.state = {
          count: 0
        };
      }
    }
     
    //等价于
    class ReactCounter extends React.Component {
      state = {
        count: 0
      };
    }

    静态属性和实例属性的区别总结:

    【相关推荐:javascript视频教程web前端

    以上就是es6静态属性和实例属性的区别是什么的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:es6怎么判断值是否为空 下一篇:es6有什么新加的东西
    Web大前端开发直播班

    相关文章推荐

    • es6中实现继承的方式是什么• es6 map对象的遍历方法有哪些• es6箭头函数有哪些特性• es6数组的排序方法是什么• es6中拼接字符串有几种写法

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网