JS基础语法---创建对象---三种方式创建对象:调用系统的构造函数;自定义构造函数;字面量的方式
创建对象三种方式:
- 调用系统的构造函数创建对象
- 自定义构造函数创建对象(结合第一种和需求通过工厂模式创建对象)
- 字面量的方式创建对象
第一种:调用系统的构造函数创建对象
//小苏举例子:
//实例化对象
var obj = new Object();
//对象有特征---属性;和 行为---方法
//添加属性-----如何添加属性? 对象.名字=值;
obj.name = "小苏";
obj.age = 38;
obj.sex = "女";
//添加方法----如何添加方法? 对象.名字=函数;
obj.eat = function () {
console.log("我喜欢吃油炸榴莲凉拌臭豆腐和大蒜");
};
obj.play = function () {
console.log("我喜欢玩飞机模型");
};
obj.cook = function () {
console.log("切菜");
console.log("洗菜");
console.log("把菜放进去");
console.log("大火5分钟");
console.log("出锅");
console.log("凉水过一下");
console.log("放料,吃");
};
console.log(obj.name);//获取--输出了
console.log(obj.age);
console.log(obj.sex);
//方法的调用
obj.eat();
obj.play();
obj.cook();
练习1:有一个黄色的小狗,叫大黄,今年已经三岁了,250斤的重量每次走路都很慢,喜欢吃大骨头
//创建对象
var smallDog = new Object();
smallDog.name = "大黄";
smallDog.age = 3;
smallDog.color = "黄色";
smallDog.weight = "250";
smallDog.eat = function () {
console.log("我要吃大骨头");
};
smallDog.walk = function () {
console.log("走一步摇尾巴");
};
smallDog.eat();//方法的调用
smallDog.walk();
练习2:创建一个手机对象,手机有型号,有颜色,可以打电话和发短信
var phone = new Object();
phone.size = "iphone8";
phone.color = "黑色";
phone.call = function () {
console.log("打电话");
};
phone.sendMessage = function () {
console.log("你干啥捏,我烧锅炉呢");
}; phone.call();
phone.sendMessage();
如何获取该变量(对象)是不是属于什么类型的?
语法: 变量 instanceof 类型的名字----->布尔类型,true就是这种类型, false不是这种类型
在当前的对象的方法中,可以使用this关键字代表当前的对象
//人的对象
var person=new Object();
person.name="小白";
person.age=10;
person.sayHi=function () {
//在当前这个对象的方法中是可以访问当前这个对象的属性的值
console.log("您好,吃了没您,我叫:"+this.name);
};
//学生的对象
var stu=new Object();
stu.name="小芳";
stu.age=18;
stu.study=function () {
console.log("学习,敲代码,今天作业四遍,我今年"+this.age+"岁了");
};
//小狗的对象
var dog=new Object();
dog.name="哮天犬";
dog.say=function () {
console.log("汪汪...我是哮天犬");
};
//输出人是不是人的类型
console.log(person instanceof Object);
console.log(stu instanceof Object);
console.log(dog instanceof Object); //对象不能分辨出到底是属于什么类型?
如何一次性创建多个对象? 把创建对象的代码封装在一个函数中
即:工厂模式创建对象
//工厂模式创建对象
function createObject(name, age) {
var obj = new Object(); //创建对象
//添加属性
obj.name = name;
obj.age = age;
//添加防范
obj.sayHi = function () {
console.log("大家好,我叫" + this.name + "我今年" + this.age + "岁");
};
return obj;
};
//创建人的对象
var per1 = createObject("小张", 20);
per1.sayHi();
//创建另一个人的对象
var per2 = createObject("小黄", 18);
per2.sayHi();
第二种:自定义构造函数创建对象 (结合第一种和需求通过工厂模式创建对象)
- 自定义构造函数
- 创建对象
//函数和构造函数的区别;名字是不是大写(首字母是大写)
function Person(name, age) {
this.name = name;
this.age = age;
this.sayHi = function () {
console.log("我叫:" + this.name + ",年龄是:" + this.age);
};
}
//自定义构造函数创建对象:先自定义一个构造函数,创建对象
var obj = new Person("小明", 10);
console.log(obj.name);
console.log(obj.age);
obj.sayHi(); var obj2 = new Person("小红", 20);
console.log(obj2.name);
console.log(obj2.age);
obj2.sayHi(); console.log(obj instanceof Person);
console.log(obj2 instanceof Person);
举例再造一个:
//自定义狗的构造函数,创建对象
function Dog(name, age, sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
var dog = new Dog("大黄", 20, "男");
console.log(dog instanceof Person);//false
console.log(dog instanceof Dog);
自定义构造函数创建对象,做了四件事情:
第三种:字面量的方式创建对象
var num=10;
var arr=[];
var obj={};
var obj = {};
obj.name = "小白";
obj.age = 10;
obj.sayHi = function () {
console.log("我是:" + this.name);
};
obj.sayHi();
优化后:
var obj2 = {
name: "小明",
age: 20,
sayHi: function () {
console.log("我是:" + this.name);
},
eat: function () {
console.log("吃了");
}
};
obj2.sayHi();
obj2.eat();
JS基础语法---创建对象---三种方式创建对象:调用系统的构造函数;自定义构造函数;字面量的方式的更多相关文章
- Vue.js基础语法(三)
vue学习的一系列,全部来自于表哥---表严肃,是我遇到过的讲课最通透,英文发音最好听的老师,想一起听课就去这里吧 https://biaoyansu.com/i/hzhj1206 1过滤器filte ...
- 前端js,css文件合并三种方式,bat命令
前端js,css文件合并三种方式,bat命令 前端js文件该如何合并三个方式如下:1. 一个大文件,所有js合并成一个大文件,所有页面都引用它.2. 各个页面大文件,各自页面合并生成自己所需js的大文 ...
- js获取时间戳的三种方式
js获取时间戳的三种方式 CreateTime--2018年5月23日08:44:10 Author:Marydon // 方式一:推荐使用 var timestamp=new Date().ge ...
- js声明变量的三种方式
JS 声明变量的三种方式 (1)使用变量步骤:a.声明-->b.赋值-->3.调用 正确用法: <script type="text/javascript"> ...
- JS基础语法---对象总结
* 编程思想: * 面向过程:凡事亲力亲为,所有的事情的过程都要清楚,注重的是过程 * 面向对象:提出需求,找到对象,对象解决这个问题,我们要结果,注重的是结果 * ...
- JavaScript进阶 - 第2章 你要懂的规则(JS基础语法)
第2章 你要懂的规则(JS基础语法) 2-1什么是变量 什么是变量? 从字面上看,变量是可变的量:从编程角度讲,变量是用于存储某种/某些数值的存储器.我们可以把变量看做一个盒子,盒子用来存放物品,物品 ...
- JS基础语法---练习:交换两个变量的值
* JavaScript简称为JS * JavaScript是什么? * 是一门脚本语言:不需要编译,直接运行 * 是一门解释性的语言:遇到一样代码就解释一行代码 * C#语言 ...
- Golang 基础之基础语法梳理 (三)
大家好,今天将梳理出的 Go语言基础语法内容,分享给大家. 请多多指教,谢谢. 本次<Go语言基础语法内容>共分为三个章节,本文为第三章节 Golang 基础之基础语法梳理 (一) Gol ...
- Node.js写文件的三种方法
Node.js写文件的三种方式: 1.通过管道流写文件 采用管道传输二进制流,可以实现自动管理流,可写流不必当心可读流流的过快而崩溃,适合大小文件传输(推荐) var readStream = fs. ...
随机推荐
- C#线程学习笔记六:线程同步--信号量和互斥体
本笔记摘抄自:https://www.cnblogs.com/zhili/archive/2012/07/23/Mutex_And_Semaphore.html,记录一下学习过程以备后续查用. ...
- Python爬虫实战:批量下载网站图片
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: GitPython PS:如有需要Python学习资料的小伙伴可以 ...
- 62-Weave 网络结构分析
上一节我们安装并创建了 Weave 网络,本节将部署容器并分析网络结构. 在 host1 中运行容器 bbox1: eval $(weave env) docker run --name bbox1 ...
- 删除列表中重复元素以及求list中元素个数
Python 去除列表中重复的元素 来自比较容易记忆的是用内置的set l1 = ['b','c','d','b','c','a','a'] l2 = list(set(l1)) print l2 还 ...
- jQuery插件 distpicker实现多次赋值
项目里需要实现省市区联动选择功能,使用了一个jQuery插件dispicker,记录一下使用过程中遇到的问题和解决办法. 需要要实现的功能就两个:打开modal框时设置地址,点击重置按钮时重置地址 原 ...
- (3)一起来看下使用mybatis框架的select语句的源码执行流程吧
本文是作者原创,版权归作者所有.若要转载,请注明出处.本文以简单的select语句为例,只贴我觉得比较重要的源码,其他不重要非关键的就不贴了 主流程和insert语句差不多,这里主要讲不同的流程,前面 ...
- YII2数据库操作出现类似Database Exception – yii\db\Exception SQLSTATE[HY000] [2002] No such file or director
参考文章:https://blog.csdn.net/zqtsx/article/details/41845511 我的系统时Ubuntu18使用上面的方法时发现,没有MySQL.socket,然后谷 ...
- 团队项目之Scrum6
小组:BLACK PANDA 时间:2019.11.26 每天举行站立式会议 提供当天站立式会议照片一张 2 昨天已完成的工作 2 编辑功能优化 实现主页内容展示 今天计划完成的工作 2 内容展示 根 ...
- bayaim_Centos7.6_mysql源码5.7-multi_20190424.txt
用户名/密码mysql/mysql 一.安装mysql: 位置位于 /data/mysql 如果遇到依赖,无法删除,使用 rpm -e --nodeps <包的名字> 不检查依赖,直接删除 ...
- react生命周期函数的应用-----1性能优化 2发ajax请求
知识点1:每次render其实就会将jax的模板生成一个虚拟dom,跟上一个虚拟dom进行比对,通过diff算法找出不同,再更新到真实dom上去. 1性能优化 每次父组件render一次(除了第一次初 ...