Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

对象,包装类1 #6

Open
Qhappyman opened this issue Mar 5, 2019 · 0 comments
Open

对象,包装类1 #6

Qhappyman opened this issue Mar 5, 2019 · 0 comments

Comments

@Qhappyman
Copy link
Owner

对象,包装类

JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...

此外,JavaScript 允许自定义对象。

首先说一下引用类型

引用类型的值(对象)是引用类型的一个实例。在ECMAScript中,引用类型是一种数据结构,用于将数据和功能组织在一起,他也常被称为类。但这种称呼斌不妥当,尽管ECMAScript从技术上讲是一门面向对象的语言,但他不具备传统面向对象所支持的类和接口的基本结构。引用类型有时候也被称为对象定义,因为他们描述的是一类对象所具有的属性和方法。上述的Object,Array,Function等都是引用类型,这一届主要说Object。

Object需要创建自己的实例,通常为new操作符。

正如描述一个人一样,对象有自己的属性和方法。例如:

var my = {
    name:"guojumnqing",
    sex:"male",
    run:function (){
        
    }
}

上述创建了一个对象,有自己的属性和方法。

属性的增删改查

增:my.height = 175;

改:my.name = "guoshuhan";

回来上面俩种方法也就会查了,至于删有一个特殊操作符:delete my.name;

其实除了用对爱性名字来访问属性,还可以用this操作符,必要时候出现。

若想执行方法,只需要Obiect.run(),这样就执行了这个对象的方法,可以通过这个方法来动态改变对象的属性值。另外需要声明的一点,对象中的属性值不管这个属性有没有被声明都默认值为undefined;比如我们查询上面对象中的run.like,结果为undefined,并不会报错,这点与js的变量声明有所不同。

对象的创建方法

  1. var a = {} 对象自变量/对象直接量

  2. 构造函数

    1. 系统自带的函数:Object,Array等

      var a = new Object();
      

      此后,a就为一个对象实例,可进行增删改查等操作

    2. 自定义的函数

      命名规则:大驼峰式命名规则,即所有的单词首字母都要大写(为了将对象与其他变量或函数区分开来)

      使用this进行创建属性

      function person(){
      
      }
      
      var person1 = new person();
      
      

      这样可以常见多个对象实例,他们可以拥有共同的属性和方法,也可以有自己的属性和方法,正如一个工厂车间,所有车有着相同的基础配置,但是他们的外观有有所不同。

      function person(){
          this.name = "people";
          this.height = 200";
          this.test = function(){
              this.height--;
          }
      }
      var Person1 = new person();
      var Person2 = new person();
      

      这样Person1与Person2就被创建成功了,他们有着一部分共同的属性方法

      若要给每个对象添加自己的属性和方法,除了直接用Object.attribute = ...。还可以使用参数传递。

      例如

      function person(color){
          this.colour = color;
          this.name:"people";
          this.height = 200";
          this.test = function(){
              this.height--;
          }
      }
      var Person1 = new person('green');
      var Person2 = new person('red');
      

      这样Person1与Person2就有了自己的颜色

      ** 注意俩种创建对象时候符号的问题 **

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant