Js构造函数创建Person类
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类相关推荐
- js构造函数(原型链)及Es6的class类
js函数 首先弄明白何为函数呢,函数简单的说就是重复执行的代码块.函数是这样的一段JavaScript 代码,它只定义一次,但可能被执行或调用任意次. 函数的定义方式: 1.声明式函数定义: func ...
- python 类构造函数_Python构造函数创建类对象
python 类构造函数 In the last tutorial, we learned how to create a class, its instance and how to access ...
- JS如何定义一个类分别用Es5和Es6来实现
前言 类是面向对象编程语言最基础,最核心的概念,正因为有了类,才可以拓展延伸出具有相同的属性和函数的对象类 对象的特点,就是它可以拥有属性和方法,而在Es6之前,并没有提供类的支持,它是用构造函数来模 ...
- js构造函数、原型与继承深入
文章目录 构造函数.原型.继承 构造函数 定义构造函数 调用构造函数 构造函数的返回值 引用构造函数 this指针 this安全策略 绑定函数 使用bind 链式语法 原型 定义原型 访问原型 设置原 ...
- 【Groovy】MOP 元对象协议与元编程 ( Expando 动态类 | 创建动态类 | 为动态类增加字段和方法 )
文章目录 一.Expando 动态类简介 二.动态类创建 三.为动态类增加字段和方法 四.完整代码示例 一.Expando 动态类简介 Groovy 运行时 , 可以动态地创建一个类 , 该类称为 & ...
- 【Kotlin】Kotlin 构造函数 ( 主构造函数 | 主构造函数声明属性 | init 初始化代码块 | 次构造函数 | 构造函数委托 | 调用构造函数创建实例对象 )
文章目录 I . 主构造函数 II . 主构造函数声明属性 III . init 初始化代码块 IV . 主构造函数参数 和 成员变量访问方式 V . 主构造函数 可见性 设置 VI . 次构造函数 ...
- js动态生产html元素,js 动态创建 html元素
js 动态创建 html元素 js学习之动态创建html元素 body{margin:0;padding:0;} .sky{background:#000;width:1000;height:500p ...
- php中类的构造函数是,php类与构造函数解析
关于类大家都有一定的认识这里只介绍在php中类值得注意的地方 ----类的创建---- php使用关键字class创建一个类,并且使用一对大括号 如: class name{ public $n=&q ...
- ENSP如何开启服务器的http_如何使用HTTP模块在Node.js中创建Web服务器(上)
当你在浏览器中查看网页时,其实是在向互联网上的另一台计算机发出请求,然后它会将网页提供给你作为响应.你通过互联网与之交谈的那台计算机就是Web服务器,Web服务器从客户端(例如你的浏览器)接收HTTP ...
最新文章
- linux进程间通信:system V 信号量和共享内存实现进程间同步
- iOS 多线程的四种技术方案
- 搭建linux下eclipse php完美搭建开发php,搭建linux上的Eclipse+PHP编程环境
- tomcat升级后报错: Invalid character found in the request target.
- Git 码云 Github
- 【Python】pycharm去掉代码下的波浪线
- webpack和vue的按需加载组件、console、抓包
- boost::mp11::mp_not_fn相关用法的测试程序
- 这些道理,未必正确,一定准确
- 三子棋の局势判断(洛谷P1917题题解,Java语言描述)
- python降维——局部线性嵌入算法(LLE)
- [manacher] hdu 3294 Girls#39; research
- 编译 php7,编译PHP7
- 【转载】对SVM的个人理解---浅显易懂
- 数据工程师必须掌握的7个大数据实战项目
- 分位数回归-Quantile regression
- 腾讯 2016届实习生招聘笔试
- 虚无世界java路_我的世界攻略大全026-虚无世界3全新版介绍(上)
- win7锁定该计算机快捷键,Win7电脑锁定计算机快捷键的方法.ppt
- 放置街灯(UVA 10859)