jsvaScript面向对象之创建方式


一切皆对象

一切皆对象???(开玩笑)

我想说你来看看javaScript的数据类型吧,String、Number、boolean、object、undefined、null(sysmbol),分别看看它们的typeof,你会发现点有意思的东东。

一切皆对象(原始值+对象)

上面的(String、Number、boolean、undefine)都是其原始值,而object和null为对象。所以对象包括属性和方法

一、new方式

```

javascript

let obj = new Object ();

obj.name = ‘lili’;

obj.age = 26;

obj.todo=function(){

  alert('')

}

```

但你不觉得这样很难找吗?

二、对象字面量

1)简单字面量

```

javascript

let obj1 = {};

obj1.name = ‘lisa’;

obj1.age = 20;

```

2)嵌套字面量

```

javascript

let obj2 = {

  name:'zhang',

  age: 20,

  todo:function(){

    console.log(this.name)

  }

}

```

由嵌套字面量来给大家介绍一下一些函数小知识

函数声明与函数表达式

```

javascript

function add(){}

let addd 1 = fuction(){}

```

区别:解析器(加载数据的时候执行顺序不同)函数声明可以全局使用,函数表达式必须先声明然后使用(然后就是这样喽)

三、构造函数

1)构造函数

```

javascript

function Person(name, age){

  this.name = name;

  this,age = age;

  this.todo:function(){

    console.log(this.name)

  }

}

let person = new Person('zhang', 23);

// 此处的this指向实例化对象(person)

```

2)普通函数

```

javascript

function person(){

  this  //此处为指向当前的函数

  return name;

}

person(‘qew’)

```

2)工厂模式

```

javascript

function person1(name, age){

  let Person = new Object();

  Person .name = name;

  Person .age = age;

}

let person2 = person1("zhang', 21)

```

构造函数和普通函数的区别(明白就行拉,不要较真)

1)this指向

构造函数指向创建的对象实例

普通函数的调用者

2)调用方式

构造函数 New

3)命名方式

构造函数首字母大写

普通函数驼峰




你可能感兴趣的:(jsvaScript面向对象之创建方式)