一切皆对象???(开玩笑)
我想说你来看看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)命名方式
构造函数首字母大写
普通函数驼峰