JS创建对象的四种方式

 更新时间:2021年11月27日 11:32:52   作者:南风晚来晚相识  
这篇文章主要给大家分享JS创建对象的四种方式,分别是字面量的方式去创建对象、使用new字符创建对象、自定义构造函数、工厂模式创建对象,更多详细内容,请参考下面文章的具体内容
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

创建对象的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); //200

per.sayHi(); //司藤

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

相关文章

  • Javascript设计模式之原型模式详细

    Javascript设计模式之原型模式详细

    这篇文章主要介绍了Javascript设计模式之原型模式,原型模式用于在创建对象时,通过共享某个对象原型的属性和方法,从而达到提高性能、降低内存占用、代码复用的效果。下面小编将详细介绍 ,需要的朋友可以参考下
    2021-09-09
  • 鼠标划过时整行变色

    鼠标划过时整行变色

    鼠标划过时整行变色...
    2006-06-06
  • JavaScript高级程序设计之变量与作用域

    JavaScript高级程序设计之变量与作用域

    这篇文章主要介绍了JavaScript高级程序设计之变量与作用域,文章主要通过描述原始值与引用值、instanceof、作用域展开具体内容,需要的朋友可以参考一下
    2021-11-11
  • JavaScript严格模式use strict的介绍

    JavaScript严格模式use strict的介绍

    这篇文章主要介绍了JavaScript严格模式use strict,严格模式是JavaScript中的一种限制性更强的变种方式。严格模式并不是JavaScript中的子集,它在语义上与正常的代码有明显的差异,下面我们就一起来学习该内容吧,需要的朋友也可以参考一下
    2021-12-12
  • 一看就懂的JavaScript适配器模式图解及使用示例

    一看就懂的JavaScript适配器模式图解及使用示例

    这篇文章主要为大家介绍了JavaScript适配器模式图解及使用示例分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • javascript数据类型之原始类型详解

    javascript数据类型之原始类型详解

    这篇文章主要为大家介绍了javascript数据类型之原始类型详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • 微信小程序 侧滑删除(左滑删除)

    微信小程序 侧滑删除(左滑删除)

    这篇文章主要介绍了微信小程序 侧滑删除(左滑删除)的相关资料,需要的朋友可以参考下
    2017-05-05
  • Three.js概述和基础知识学习

    Three.js概述和基础知识学习

    这篇文章主要为大家介绍了Three.js概述和基础知识学习,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • TypeScript获取二叉树的镜像实例

    TypeScript获取二叉树的镜像实例

    这篇文章主要为大家介绍了TypeScript获取二叉树的镜像实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • JavaScript选择器函数querySelector和querySelectorAll

    JavaScript选择器函数querySelector和querySelectorAll

    这篇文章主要介绍了?JavaScript选择器函数querySelector和querySelectorAll,下面文章围绕querySelector和querySelectorAll的相关资料展开详细内容,需要的朋友可以参考一下
    2021-11-11

最新评论

?


http://www.vxiaotou.com