1 /*
* 创建一个构造函数,专门用来创建Person对象的
* 构造函数就是一个普通的函数,创建方式和普通函数没有区别,
* 不同的是构造函数习惯上首字母大写
*
* 构造函数和普通函数的区别就是调用方式的不同
* 普通函数是直接调用,而构造函数需要使用new关键字来调用
*
* 构造函数的执行流程:
* 1.立刻创建一个新的对象
* 2.将新建的对象设置为函数中this,在构造函数中可以使用this来引用新建的对象
* 3.逐行执行函数中的代码
* 4.将新建的对象作为返回值返回
*
* 使用同一个构造函数创建的对象,我们称为一类对象,也将一个构造函数称为一个类。
* 我们将通过一个构造函数创建的对象,称为是该类的实例
*
* this的情况:
* 1.当以函数的形式调用时,this是window
* 2.当以方法的形式调用时,谁调用方法this就是谁
* 3.当以构造函数的形式调用时,this就是新创建的那个对象
*
*/

<script type="text/javascript">function Person(name,age,gender){var name,age,gender;this.name=name;this.age=age;this.gender=gender;}function Animal(name,age,gender){var name,age,gender;this.name=name;this.age=age;this.gender=gender;}var P1=new Person("刘",20,"男");var P2=new Animal("哈士奇",5,"男");console.log(P1.name);console.log(P2.name);/** 使用instanceof可以检查一个对象是否是一个类的实例*  语法:*         对象 instanceof 构造函数* 如果是,则返回true,否则返回false*/console.log( P2 instanceof Person);</script>

枚举

          function Person(name,age,gender){var name,age,gender;this.name=name;this.age=age;this.gender=gender;}var P1=new Person("刘",20,"男");for(var n in P1){console.log(n);console.log(P1[n]);}

结果:

1.实例

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title></title><script type="text/javascript">function Person(name , age , gender){this.name = name;this.age = age;}//修改Person原型的toStringPerson.prototype.toString = function(){return "Person[name="+this.name+",age="+this.age+"]";};//创建一个Person对象var per = new Person("孙悟空",18);var per2 = new Person("猪八戒",28);var per3 = new Person("红孩儿",8);var per4 = new Person("蜘蛛精",16);var per5 = new Person("二郎神",38);/** 将这些person对象放入到一个数组中*/var perArr = [per,per2,per3,per4,per5];/** 创建一个函数,可以将perArr中的满18岁的Person提取出来,*     然后封装到一个新的数组中并返回* arr*   形参,要提取信息的数组*/function getAdult(arr){//创建一个新的数组var newArr = [];//遍历arr,获取arr中Person对象for(var i=0 ; i<arr.length ; i++){var p = arr[i];//判断Person对象的age是否大于等于18if(p.age >= 18){//如果大于等于18,则将这个对象添加到newArr中//将对象放入到新数组中newArr.push(p);}}//将新的数组返回return newArr;}var result = getAdult(perArr); console.log(result);</script></head><body></body>
</html>

2.实例

<script type="text/javascript">/** 一般我们都是使用for循环去遍历数组,*  JS中还为我们提供了一个方法,用来遍历数组* forEach()*        - 这个方法只支持IE8以上的浏览器*             IE8及以下的浏览器均不支持该方法,所以如果需要兼容IE8,则不要使用forEach*           还是使用for循环来遍历*///创建一个数组var arr = ["孙悟空","猪八戒","沙和尚","唐僧","白骨精"];/** forEach()方法需要一个函数作为参数*    - 像这种函数,由我们创建但是不由我们调用的,我们称为回调函数*  - 数组中有几个元素函数就会执行几次,每次执行时,浏览器会将遍历到的元素*         以实参的形式传递进来,我们可以来定义形参,来读取这些内容*     - 浏览器会在回调函数中传递三个参数:*         第一个参数,就是当前正在遍历的元素*       第二个参数,就是当前正在遍历的元素的索引*        第三个参数,就是正在遍历的数组*         */arr.forEach(function(value , index , obj){console.log(index+":"+value+obj);});</script>

3.实例

<script type="text/javascript">var arr = ["孙悟空","猪八戒","沙和尚","唐僧","白骨精"];/** slice()  [)*     - 可以用来从数组提取指定元素*    - 该方法不会改变元素数组,而是将截取到的元素封装到一个新数组中返回*  - 参数:*       1.截取开始的位置的索引,包含开始索引[*       2.截取结束的位置的索引,不包含结束索引)*          - 第二个参数可以省略不写,此时会截取从开始索引往后的所有元素*        - 索引可以传递一个负值,如果传递一个负值,则从后往前计算*            -1 倒数第一个*           -2 倒数第二个*/var result = arr.slice(1,4);result = arr.slice(2);result = arr.slice(1,-2);//猪八戒","沙和尚console.log("看这里:"+result);/** splice()*     - 可以用于删除数组中的指定元素*   - 使用splice()会影响到原数组,会将指定元素从原数组中删除*       并将被删除的元素作为返回值返回*    - 参数:*       第一个,表示开始位置的索引*       第二个,表示删除的数量*         第三个及以后。。*           可以传递一些新的元素,这些元素将会自动插入到开始位置索引前边*  */arr = ["0孙悟空","1猪八戒","2沙和尚","3唐僧","4白骨精"];//var result = arr.splice(1,2,"牛魔王","铁扇公主","红孩儿");//从下标为1的位置开始删除2个元素 并且在下标为1的位置添加三个"牛魔王","铁扇公主","红孩儿"元素//var result = arr.splice(1,2);作用是删除从下标为1的地方开始删2个元素console.log(arr);//console.log(result); </script>

4.实例

<script type="text/javascript">//创建一个数组var arr = [1,2,3,2,2,1,3,4,2,5];        //去除数组中重复的数字//获取数组中的每一个元素for(var i=0 ; i<arr.length ; i++){//console.log(arr[i]);/*获取当前元素后的所有元素*/for(var j=i+1 ; j<arr.length ; j++){//console.log("---->"+arr[j]);//判断两个元素的值是否相等if(arr[i] == arr[j]){//如果相等则证明出现了重复的元素,则删除j对应的元素arr.splice(j,1);//当删除了当前j所在的元素以后,后边的元素会自动补位//此时将不会在比较这个元素吧,我需要在比较一次j所在位置的元素//使j自减j--;}}}console.log(arr);</script>

Js构造函数创建Person类相关推荐

  1. js构造函数(原型链)及Es6的class类

    js函数 首先弄明白何为函数呢,函数简单的说就是重复执行的代码块.函数是这样的一段JavaScript 代码,它只定义一次,但可能被执行或调用任意次. 函数的定义方式: 1.声明式函数定义: func ...

  2. python 类构造函数_Python构造函数创建类对象

    python 类构造函数 In the last tutorial, we learned how to create a class, its instance and how to access ...

  3. JS如何定义一个类分别用Es5和Es6来实现

    前言 类是面向对象编程语言最基础,最核心的概念,正因为有了类,才可以拓展延伸出具有相同的属性和函数的对象类 对象的特点,就是它可以拥有属性和方法,而在Es6之前,并没有提供类的支持,它是用构造函数来模 ...

  4. js构造函数、原型与继承深入

    文章目录 构造函数.原型.继承 构造函数 定义构造函数 调用构造函数 构造函数的返回值 引用构造函数 this指针 this安全策略 绑定函数 使用bind 链式语法 原型 定义原型 访问原型 设置原 ...

  5. 【Groovy】MOP 元对象协议与元编程 ( Expando 动态类 | 创建动态类 | 为动态类增加字段和方法 )

    文章目录 一.Expando 动态类简介 二.动态类创建 三.为动态类增加字段和方法 四.完整代码示例 一.Expando 动态类简介 Groovy 运行时 , 可以动态地创建一个类 , 该类称为 & ...

  6. 【Kotlin】Kotlin 构造函数 ( 主构造函数 | 主构造函数声明属性 | init 初始化代码块 | 次构造函数 | 构造函数委托 | 调用构造函数创建实例对象 )

    文章目录 I . 主构造函数 II . 主构造函数声明属性 III . init 初始化代码块 IV . 主构造函数参数 和 成员变量访问方式 V . 主构造函数 可见性 设置 VI . 次构造函数 ...

  7. js动态生产html元素,js 动态创建 html元素

    js 动态创建 html元素 js学习之动态创建html元素 body{margin:0;padding:0;} .sky{background:#000;width:1000;height:500p ...

  8. php中类的构造函数是,php类与构造函数解析

    关于类大家都有一定的认识这里只介绍在php中类值得注意的地方 ----类的创建---- php使用关键字class创建一个类,并且使用一对大括号 如: class name{ public $n=&q ...

  9. ENSP如何开启服务器的http_如何使用HTTP模块在Node.js中创建Web服务器(上)

    当你在浏览器中查看网页时,其实是在向互联网上的另一台计算机发出请求,然后它会将网页提供给你作为响应.你通过互联网与之交谈的那台计算机就是Web服务器,Web服务器从客户端(例如你的浏览器)接收HTTP ...

最新文章

  1. linux进程间通信:system V 信号量和共享内存实现进程间同步
  2. iOS 多线程的四种技术方案
  3. 搭建linux下eclipse php完美搭建开发php,搭建linux上的Eclipse+PHP编程环境
  4. tomcat升级后报错: Invalid character found in the request target.
  5. Git 码云 Github
  6. 【Python】pycharm去掉代码下的波浪线
  7. webpack和vue的按需加载组件、console、抓包
  8. boost::mp11::mp_not_fn相关用法的测试程序
  9. 这些道理,未必正确,一定准确
  10. 三子棋の局势判断(洛谷P1917题题解,Java语言描述)
  11. python降维——局部线性嵌入算法(LLE)
  12. [manacher] hdu 3294 Girls#39; research
  13. 编译 php7,编译PHP7
  14. 【转载】对SVM的个人理解---浅显易懂
  15. 数据工程师必须掌握的7个大数据实战项目
  16. 分位数回归-Quantile regression
  17. 腾讯 2016届实习生招聘笔试
  18. 虚无世界java路_我的世界攻略大全026-虚无世界3全新版介绍(上)
  19. win7锁定该计算机快捷键,Win7电脑锁定计算机快捷键的方法.ppt
  20. 放置街灯(UVA 10859)

热门文章

  1. 改变 Windows 用户文件夹默认位置
  2. [足式机器人]Part1 运动对称性Ch05——【Legged Robots that Balance 读书笔记】
  3. Hu不变矩+BP神经网络,实现对图像的分类(pytorch实现)
  4. 如何使用互联网思维,解决流浪动物问题
  5. 8821AU双频抓包案例
  6. 烈焰遮天 cocos 手游mmo 源码 解析
  7. AI遮天传 ML-回归分析入门
  8. 迅速提高产品用户体验、交互、界面设计的几个绝妙方法
  9. Go语言进阶,结构体与json字符串格式的互相转换
  10. css后台页面布局效果