您当前的位置:首页 > 网站建设 > javascript
| php | asp | css | H5 | javascript | Mysql | Dreamweaver | Delphi | 网站维护 | 帝国cms | React | 考试系统 | ajax | jQuery | 小程序 |

JS创建对象的四种方式

51自学网 2022-02-21 13:36:34
  javascript

创建对象的4种方式:

  • 1.字面量的方式去创建对象
  • 2.使用new字符创建对象
  • 3.自定义构造函数
  • 4.工厂模式创建对象

对象是指:具有属性和方法

1.通过字面量的方式去创建对象

var person1={    name:'柯南',    age:12,    sex:'男',    eat:function(){        console.log("我饿了,想吃饭")    },    say:function(){        console.log("我叫柯南")    }}console.log("person.eat输出函数",person.eat)person.eat(); //直接输出 我饿了,想吃饭

我们需要注意的是:person.eat和person.eat()的区别

  • person.eat是输出函数
  • person.eat()是调用函数

2.使用new字符创建对象

var person2=new Object();person2.name='柯南'person2.age='21'person2.sex='男'person2.eat=function(){    console.log("我饿了,想吃饭")}person2.say=function(){    console.log("我叫柯南")}console.log( '性别',person2.sex ) //输出男

上面这两种方式去创建对象的缺点:

虽然上面这两种都可以去创建对象

但是我们创建出来的对象压根就不知道是什么类型?

当然我们知道他们是OBject类型

这个时候我们就需要使用自定义构造函数去创建对象了

3.自定构造函数创建对象

function Person(name,age,sex,like){    console.log('没有给like形参传递值就是undeined',like)    // 这里的this指向的是Person这个对象    console.log('this',this)    this.name=name;    this.age=age;    this.sex=sex;    this.say=function(){        console.log("我叫",name)    }}//这一行代码表示的是创建一个对象//同时实例化一个对象//并且给这个对象的属性进行初始化//所以这一行代码并不简单let per1=new Person('柯南',19,'男');per1.say();console.log(per1 instanceof Person);//true

现在我们知道了per1是属于Person类型的,这就是自定构造函数创建对象的优势,我们知道它创建的对象是哪个类型的

ps:构造函数通常首字母大写


当我们new一个对象的时候做了四件事情:

通过创建自定义对象我们明白了当我们new一个对象的时候做了四件事情

  • 1.开辟空间存储当前对象
  • 2.把this设置为当前对象
  • 3.设置属性和方法
  • 4.把this对象返回

4.工厂模式创建对象

function createObj(name,age) {    let obj=new Object();    obj.name=name;    obj.age=age;    obj.sayHi=function(){        console.log(obj.name)    }    return obj;}let per=createObj('司藤',200)console.log(per.age); //200per.sayHi(); //司藤

到此这篇关于 JS创建对象的四种方式的文章就介绍到这了,更多相关 JS创建对象的四种方式内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


下载地址:
vue3中
JS构造函数和实例化的关系及原型引入
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。