JS创建对象的四种简单方式 (工厂模式和自定义构造函数创建对象的区别)
// 对象:特指的某个事物,具有属性和方法(一组无序的属性的集合)
// 特征------>属性
// 行为------>方法
// 创建对象的四种方式
1 // 1.字面量的方式,就是实例化对象
var stu1={
name:"小明",
age:20,
ID:20181111,
sex:"男",
eat:function(){
console.log("吃烩面");
},
readBook:function(){
console.log("平凡的世界");
}
};
// 2.调用系统的构造函数
var stu2=new Object();
stu2.name="小红";
stu2.age=19;
stu2.ID=20181112;
stu2.sex="女";
stu2.eat=function(){
console.log("吃米饭");
};
stu2.readBook=function(){
console.log("穆世林的葬礼");
};
//方式1、2 创建的对象没有propotype原型属性,3、4通过函数的形式创建的有prototype属性
prototype属性:为一个特定类声明通用的变量或者函数
不需要显式地声明一个prototype属性,因为在每一个构造函数中都有它的存在
var Person = function(){};
var p = new Person();
alert(p.__proto__ === Person.prototype);//true
// 3.自定义构造函数的方式
function Student(name,age,ID,sex){
this.name=name;
this.age=age;
this.ID=ID;
this.sex=sex;
this.sayHi=function(){
console.log("您好!");
};
}
//创建对象--->实例化一个对象,同时对属性进行初始化。
// 1.开辟空间存储对象
// 2.把this设置为当前的对象
// 3.设置属性和方法的值
// 4.把this对象返回
var stu3=new Student("小天",18,20181113,"男");
// 4.工厂模式创建对象
function student(name,age,ID,sex){
var obj = new Object();
obj.name=name;
obj.age=age;
obj.ID=ID;
obj.sex=sex;
obj.sayHi=function(){
console.log("您好!");
};
return obj;
}
var stu4=student("小菊",21,20181114,"女");
工厂模式和自定义构造函数创建对象的区别:
推荐使用自定义构造函数的方法创建对象
JS创建对象的四种简单方式 (工厂模式和自定义构造函数创建对象的区别)的更多相关文章
- js函数的四种调用方式以及对应的this指向
一.函数调用,此时this是全局的也就是window 1 var c=function(){ 2 alert(this==window) 3 } 4 c()//true 二.方法调用 var myOb ...
- JS高级---工厂模式创建对象和自定义构造函数创建对象的区别
创建对象:工厂模式和自定义构造函数的区别 共同点: 都是函数, 都可以创建对象, 都可以传入参数 区别: 工厂模式: 函数名是小写 有new, 有返回值 new之后的对象是当前的对象 直接调用 ...
- js创建对象的几种常用方式小结
第一种模式:工厂方式 var lev=function(){ return "666"; }; function Parent(){ var Child = new Object ...
- js介绍,js三种引入方式,js选择器,js四种调试方式,js操作页面文档DOM(修改文本,修改css样式,修改属性)
js介绍 js运行编写在浏览器上的脚本语言(外挂,具有逻辑性) 脚本语言:运行在浏览器上的独立的代码块(具有逻辑性) 操作BOM 浏览器对象盒子 操作DOM 文本对象 js三种引入方式 (1)行间式: ...
- CSS简单的四种引入方式
CSS一共有四种引入方式 (1)最简单的两种方式是直接在html标签里面引入,或者在html文件前面声明,以下是简单的代码示例 <!DOCTYPE html> <html lang= ...
- 【温故知新】——原生js中常用的四种循环方式
一.引言 本文主要是利用一个例子,讲一下原生js中常用的四种循环方式的使用与区别: 实现效果: 在网页中弹出框输入0 网页输出“欢迎下次光临” 在网页中弹出框输入1 网页输出“查询中……” 在 ...
- 浅谈js函数三种定义方式 & 四种调用方式 & 调用顺序
在Javascript定义一个函数一般有如下三种方式: 函数关键字(function)语句: function fnMethodName(x){alert(x);} 函数字面量(Function Li ...
- js的数据类型、函数、流程控制及变量的四种声明方式
运算符 基本运算符 加 + 减 - 乘 * 除 / 取余 % 自增 ++ eg: 1++ 或 ++1 自减 -- eg: 1-- 或 --1 注:++或--写在前面表示优先级最高,先进行自增或者自减 ...
- 黑马vue---18、v-for指令的四种使用方式
黑马vue---18.v-for指令的四种使用方式 一.总结 一句话总结: (item, i) in list:什么in什么的形式,前面是各种参数 1.v-for循环普通数组? <p v-for ...
随机推荐
- Springboot + Mybatis + Ehcache
最近在做一个项目,为处理并发性较差的问题,使用了Mybatis二级缓存 但在多表联合查询的情况下,Mybatis二级缓存是存在着数据脏读的问题的 两天就是在想办法解决这个数据脏读的问题 考虑到简易性. ...
- hive日期函数-原生函数(二)
1. from_unixtime 日期函数UNIX时间戳转日期函数: from_unixtime 语法:from_unixtime(bigint unixtime[, stringformat]) 返 ...
- 【转】分布式文件系统FastDFS架构剖析
FastDFS是一款类Google FS的开源分布式文件系统,它用纯C语言实现,支持Linux.FreeBSD.AIX等UNIX系统.它只能通过专有API对文件进行存取访问,不支持POSIX接口方式, ...
- fish-redux快速创建文件夹模板 FishReduxTemplate
推荐一款插件: 在插件plugins中搜 FishReduxTemplate
- bzoj3307 雨天的尾巴题解及改题过程(线段树合并+lca+树上差分)
题目描述 N个点,形成一个树状结构.有M次发放,每次选择两个点x,y对于x到y的路径上(含x,y)每个点发一袋Z类型的物品.完成所有发放后,每个点存放最多的是哪种物品. 输入格式 第一行数字N,M接下 ...
- 医院设置x
医院设置x 题目描述 Description 设有一棵二叉树,如下图 其中,圈中数字表示结点居民的人口.圈边上数字表示结点编号,.现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小, ...
- 图论小专题A
大意失荆州.今天考试一到可以用Dijkstra水过的题目我竟然没有做出来,这说明基础还是相当重要.考虑到我连Tarjan算法都不太记得了,我决定再过一遍蓝皮书,对图论做一个小的总结.图论这个部分可能会 ...
- vfprintf()函数
函数声明:int vfprintf(FILE *stream, const char *format, va_list arg) 函数参数: stream—这是指向了FILE对象的指针,该FILE对象 ...
- Spring Boot教程(三十九)使用MyBatis注解配置详解(2)
增删改查 MyBatis针对不同的数据库操作分别提供了不同的注解来进行配置,在之前的示例中演示了@Insert,下面针对User表做一组最基本的增删改查作为示例: public interface U ...
- 免费馅饼~-~ (hdu 1176
当我准备要写这个随笔的时候是需要勇气的. 掉馅饼嘛,肯定是坑. (hdu1176 话说,gameboy人品太好,放学回家路上有馅饼可捡.还就在0~10这11个位置里,当馅饼开始掉的时候,gameboy ...