对象创建的两种方法

对象:

  什么是对象呢?现实中的男女朋友?某一个事物的指代?那么在JS的函数中对象就是一组无序属性的集合。

  对象的作用就是可以帮助我们封装一些数据,方便我们在程序中的传输或是控制,同时对象也可以帮我们描述一些事物;在JS中对象是有属性和方法组成的。

那么对象要怎么创建呢?

  1、首先我们可以通过构造函数的方式创建自定义对象;

例:

var student = new Object();  //创建了一个学生的空对象
    // 属性(特征,姓名,性别,年龄,手机号,家庭)和方法(打招呼,游泳,打球)
    student.name = "张三";
    student.sex = "男";
    student.age = 20;
    student.sayHi = function (){
        console.log("我叫"+student.name+",我今年"+student.age+",我是"+student.sex+"生");
    };
    console.log(student.name);
    console.log(student.age);
    console.log(student.sex);

//函数名();
    // 对象名.方法名();
    student.sayHi();

在上述案例中我们使用了一个“NEW”这个关键字;那么在创建对象时这个New关键字主要做了下面四件事情:

a. 创建一个空对象
b. 将关键字this指向这个空对象
c. 执行构造函数里面的代码,给当前空对象this设置属性和方法
d. 将this这个当前对象返回

2、我们还可以通过对象字面量来创建对象

例:

var o = {    // 对象字面量
    name:"张三",
    age:20,
    address:"上海市",
    sex:"男",
    sayHi:function(){
        console.log("大家好,我的名字是:"+ this.name+",我的年龄是:"+ this.age+",我是"+ this.sex+"生");
    }
};
o.sayHi();

  当然,创建对象的方式不止这两种,有的大神已经给出了的很多种方式,后期我也会慢慢补充完整。还望大家能持续关注!

时间: 2024-10-13 07:35:45

对象创建的两种方法的相关文章

OC中动态创建可变数组的问题.有一个数组,数组中有13个元素,先将该数组进行分组,每3个元素为一组,分为若干组,最后用一个数组统一管理这些分组.(要动态创建数组).两种方法

<span style="font-size:24px;">//////第一种方法 // NSMutableArray *arr = [NSMutableArray array]; // for (int i = 0; i < 13; i ++) { // [arr addObject:[NSString stringWithFormat:@"lanou%d",i + 1]]; // } // NSLog(@"%@",arr);

JS访问对象属性的两种方法

var person = { name: "nick" }; console.log(person["name"]); // "nick"; console.log(person.name); // "nick"; 两种方法优缺点:方括号法可以通过变量访问对象的属性,而点表示法不可以: 方括号法必须加双引号,可以是任何字符串: 原文地址:https://www.cnblogs.com/cloudbarrychen/p/1131

C++中对象创建的两种方式

在C++中,类的对象建立分为两种,一种是静态建立,如A a:另一种是动态建立,如A* ptr=new A:这两种方式是有区别的. 静态建立一个类对象,是由编译器为对象在栈空间中分配内存,是通过直接移动栈顶指针,挪出适当的空间,然后在这片内存空间上调用构造函数形成一个栈对象.使用这种方法,直接调用类的构造函数. 动态建立类对象,是使用new运算符将对象建立在堆空间中.这个过程分为两步,第一步是执行operator new()函数,在堆空间中搜索合适的内存并进行分配:第二步是调用构造函数构造对象,初

JavaScript高级程序设计--对象创建的三种方法

创建对象的三种方法: 1.工厂模式 工厂模式是软件工程领域广为人知的设计模式,这种模式抽象了创建具体对象的过程.下面是使用工厂函数创建对象的的一个例子. 2.构造函数: 从上面的例子中,我们看到构造函数与工厂函数不同之处: 1.没有显式的创建对象 2.直接将属性和方法赋给了this对象,没有return语句 另外,函数名Person使用了首字母大写.(这是一个惯例,构造函数始终都应该以一个大写字母开头,而非构造函数应该以一个小写字母开头.) 使用构造函数来创建对象,意味着你可以获取对象的类型.这

java_线程创建的两种方法

线程创建的方法有两种: 一 继承Thread类: public class ThreadTest { public static void main(String[] args) { //4)在main方法中创建线程对象 Thread01 thread01 = new Thread01(); //5)调用Thread的start方法启动线程并执行线程 thread01.start(); } } //1)创建一个类继承Thread类 class Thread01 extends Thread{ /

字符设备设备节点创建的两种方法

在Linux下,字符设备和块设备都体现了"一切皆为文件"的思想,对于这两种设备而言,他们在Linux系统中都有一个对应的文件来"代表"它们的存在,那就是设备文件.应用程序通过操作某个设备文件,便可以操作对应的硬件.设备有主设备号和次设备号,例如在Linux下通过ls -l /dev/ttyS0命令可以看到如图信息 对于/dev/ttyS0设备文件,c表示它是一个字符设备文件(如果是'b'则是块设备文件),4是它的主设备号,64是它的次设备号.Linux系统根据设备文

java创建线程两种方法

/* 进程:是一个正在执行中的程序 每一个进程执行都有执行顺序,该顺序是一个执行路径,或叫控制单元 线程:就是进程中一个独立的控制单元 线程在控制着进程的执行 一个进程至少包含一个线程 Java VM 启动时会有个进程java.exe 该进程中至少有一个线程复制java程序的执行,这个线程运行的代码存在于main方法中, 该线程称之为主线程 JVM启动不止一个线程,还有复制垃圾回收机制的线程 创建线程:(1)继承Thread类;复写run方法;创建对象,调用start方法 (2)实现Runnab

UIImage加载图片的两种方法区别

Apple官方的文档为生成一个UIImage对象提供了两种方法加载图片: 1. imageNamed,其参数为图片的名字: 2. imageWithContentsOfFile,其参数也是图片文件的路径. 那么两种有什么区别吗? 肯定是有的.根据Apple的官方文档: imageNamed: 这 个方法用一个指定的名字在系统缓存中查找并返回一个图片对象如果它存在的话.如果缓存中没有找到相应的图片,这个方法从指定的文档中加载然后缓存并返回这 个对象.因此imageNamed的优点是当加载时会缓存图

(转)java创建线程的两种方法比较

Java提供了线程类Thread来创建多线程的程序.其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象.每个Thread对象描述了一个单独的线程.要产生一个线程,有两种方法: ◆需要从Java.lang.Thread类派生一个新的线程类,重载它的run()方法:  ◆实现Runnalbe接口,重载Runnalbe接口中的run()方法. 为什么Java要提供两种方法来创建线程呢?它们都有哪些区别?相比而言,哪一种方法更好呢? 在Java中,类仅支持单继承