<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>03-构造函数</title>
<script>
// 构造函数就是一种专门用来创建对象的一种函数

// 使用系统原生的构造函数创建对象
// var student =new Object();
// student.name = '张三';
// student.sex = 'b';
// student.study = function(){
// console.log('学习');
// }
// student.study();

// 自定义构造函数
var name = '张三';
console.log(name);

function Student(){
this.name = "李四";
this.age = 18;
this.sex = 'b';
this.play = function(){
console.log('谁晚上跟' + this.name + '一起LOL');
}
}

// var st1 = new Student();
// st1.play();
// console.log(st1.name);

// var st2 = Student();
// // st2.play();
// // console.log(st2.name);
// console.log(window.name);
// console.log(name);
// console.log(age);

// 自定义构造函数需要注意:1、构造函数首字母大写,为了跟普通的函数区分,2、在使用的时候,必须使用new关键字,3、返回值就是当前对象本身

// 调用构造函数的步骤:
/*
1、创建一个新对象
2、将构造函数的作用域赋给这个新对象
3、执行构造函数的代码
4、返回新对象
*/

// 使用构造函数的时候,必须使用new关键字,如果不使用new,会造成,对象无法返回,并且会影响函数调用者的环境变量

function Student1(){
this.name = "李四";
this.age = 18;
this.sex = 'b';
this.play = function(){
console.log('谁晚上跟' + this.name + '一起LOL');
}
}

// 使用instanceof来判断某个对象是否属于某个构造函数类型
var st3 = new Student1();
console.log(st3 instanceof Student1);
console.log(st3 instanceof Object);

</script>
</head>
<body>

</body>
</html>

实例二:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>创建对象</title>

</head>
<body>
</body>
<script>

// 标准对象构造器
function Person(n, a, t){
// 局部变量可以理解成对象的私有属性
var secret = "秘密";
this.name = n;
this.age = a;
this.runType = t;
this.run = function(){
// 对象的方法可以访问(读取)自己的属性,但是尽量使用 this.xxxx 来访问
console.log(this.runType);
}
this.introduce = function (){
console.log("我是"+this.name+"我今年"+this.age+"岁了");
}
this.doSome = function(){
// 方法也可以 设置 自己的属性
this.runType = "?";
}
}

// new的过程实际上是在堆上为对象分配内存空间,然后再调用 构造器 的时候传入构造器中表示新建的对象,最后把 这个地址 也赋给 xiaoli 这个变量
// 本质上 所有对象变量 存储的都是一个 地址值,这个地址可以找到对象在堆上的内存,从而操作对象
var xiaoli = new Person("小丽", 20, "✈️");
console.log(xiaoli.name);
xiaoli.run();
xiaoli.introduce();

</script>
</html>

转载于:https://www.cnblogs.com/7qin/p/10226407.html

【JavaScript 6连载】三、构造函数相关推荐

  1. 【译】JavaScript 工厂函数 vs 构造函数

    译者:前端小智 原文:medium.com/@chamikakas- 当谈到JavaScript语言与其他编程语言相比时,你可能会听到一些令人困惑东西,其中之一是工厂函数和构造函数. 想优质文章请猛戳 ...

  2. (二)Javascript面向对象编程:构造函数的继承

    Javascript面向对象编程:构造函数的继承 这个系列的第一部分,主要介绍了如何"封装"数据和方法,以及如何从原型对象生成实例. 今天要介绍的是,对象之间的"继承&q ...

  3. JavaScript高级笔记_002_构造函数和原型

    JavaScript高级笔记_002_构造函数和原型 构造函数和原型 构造函数和原型 概述 构造函数 构造函数的问题 构造函数原型`prototype` 对象原型`__proto__` (四个下划线) ...

  4. JavaScript有哪三部分组成?

    在学习web前端技术时,最常见的也是需要最着重学习的就是JavaScript这一方面,工作中也是会经常用到的,那么JavaScript有哪三部分组成呢?来看看下面的详细介绍. JavaScript有哪 ...

  5. JavaScript由哪三部分组成呢?

    在学习web前端技术时,最常见的也是需要最着重学习的就是JavaScript这一方面,工作中也是会经常用到的,那么JavaScript有哪三部分组成呢?来看看下面的详细介绍. JavaScript有哪 ...

  6. JavaScript学习(三十九)—对象中内容的操作

    JavaScript学习(三十九)-对象中内容的操作 一.对象中内容的操作:增.删.改.查 (一).增:给对象添加属性或者方法 1)方式1:对象名称.属性名=属性值: 2)方式2:对象名称['属性名' ...

  7. JavaScript学习(三十八)—面向过程与面向对象

    JavaScript学习(三十八)-面向过程与面向对象 一.程序设计语言中的两大编程思想:面向对象.面向过程 (一).面向过程 就是指完成某个需求的时候,先分析出完成该需求时所需要经历的步骤有哪些,然 ...

  8. JavaScript学习(三十七)—实现右键自定义菜单的功能

    JavaScript学习(三十七)-实现右键自定义菜单的功能 代码如下: <!DOCTYPE html> <html lang="en"><head& ...

  9. JavaScript学习(三十六)—移动的小球

    JavaScript学习(三十六)-移动的小球 代码如下: <!DOCTYPE html> <html lang="en"><head>< ...

  10. JavaScript学习(三十五)—拖动元素

    JavaScript学习(三十五)-拖动元素 代码如下: <!DOCTYPE html> <html lang="en"><head><m ...

最新文章

  1. 《LeetCode力扣练习》第94题 二叉树的中序遍历 Java
  2. 【Flask项目2】创建模型类映射到数据库,密码加密实现(3)
  3. “面试不败计划”:集合知识整体总结
  4. 最新卡通渲染效果图(附带一张次世代帅哥)
  5. java安全编码指南之:敏感类的拷贝
  6. NPER用计算机怎么算,计算机财务管理第三章详解.doc
  7. 7-181 帅到没朋友 (20 分)
  8. MySql Cluster 集成安装,Centos,坑点集锦
  9. js获取当前页面的地址和端口_url
  10. 多媒体计算机辅助英语教学,多媒体计算机辅助小学英语教学探讨
  11. C#以管理员身份运行程序
  12. 排序算法整理(冒泡、选择、快排、堆排序、希尔、归并)
  13. 微信公众号消息模板发送
  14. 松尾环 matlab,猝发式直扩信号数字化接收机载波同步技术研究
  15. 北信源内网安全与补丁分发系统简单功能介绍
  16. 第07章 图形操作 · 7.1 GDI原理(3)
  17. 解决——》[Err] 1093 - You can't specify target table 'fcf' for update in FROM clause
  18. svn co 无法识别url的解决办法
  19. 2019-2020-1 20175227张雪莹《信息安全系统设计基础》 实验五 《通讯协议设计》
  20. 关于keil 官网下载芯片包速度太慢的问题

热门文章

  1. 安装软件后,在postinst中执行ldconfig无效?
  2. 在NVME SSD上安装WIN7
  3. 全网首发:给doubango增加支持H264 stap-a帧
  4. 构建freeswitch, make cd-moh-install提示文件错误
  5. fatal error: gnu/stubs-n64_hard_2008.h: No such file or directory
  6. C中常量数组不能修改
  7. LINUX获得线程号、设置线程名
  8. deepstream-app源码没有公开,预计3.0可能公开
  9. 管理感悟:区分话的难听与对错
  10. dataframe在最后新增一行_【TOOLS】python中对Excel进行写入操作,写入一列或者一行(openpyxl)...