继上一篇 对象、for in、
来源:互联网 发布:怎么降低wifi网络延迟 编辑:程序博客网 时间:2024/05/16 17:28
对象回顾
//对象的第一种创建方式,通过对象直接量创建var obj = { name : "胖胖", age : 18, sex : "男", fin : function(){ alert("胖胖在讲课"); }, clothing : { color : "red", height : "100px", width : "100px" }};alert(obj.name); //访问对象属性alert(obj["name"]); //访问的第二种方式alert( obj.fin );obj.fin();alert( obj.clothing.color );//修改属性obj.age = 19;alert(obj.age);//删除属性delete obj.age;alert(obj.age);
for in
// for in 的使用 用作遍历对象的属性var obj = { name : "小明", age : 18, sex : "男"};for(var i in obj){ // alert(i);//拿到的是对象的属性 alert( obj[i] );}var arr = [1,22,4,7];for(var i in arr){ // alert(i);//打印的是数组的下标 alert(arr[i]);}// with的使用var obj = { name : "小明", age : 18, sex : "男"};with(obj){ var n = name; var a = age; var s = sex;}alert(n);alert(a);alert(s);
类与对象
类:“类”这个词是抽象的,不是具体的某一个;比如狗,指的就是狗这一类动物,是所有的狗,不是某一只具体的狗
对象:对象是类的实例,是具体的。比如小明家的狗,这个对象指的就是具体的狗,是小明家的那一只数组是类
var arr1 = new Array(); //arr是一个数组对象
instanceof作用
// instanceof作用:用来判断一个对象是不是某一个类的实例//需求:怎么判断obj 是不是一个数组var obj = new Array();// alert(typeof obj);//打印的是objectalert(obj instanceof Array); //打印true 说明obj是Array的一个实例alert(obj instanceof Date); //打印false 说明obj不是Date的一个实例
this
//this指向的是当前引用的那个对象var obj = { name : "胖胖", age : 18, sex : "男", eat : function(){ alert(this); //打印object alert(this.name); //打印胖胖 this指的就是obj alert("胖胖在吃饭"); }, clothing : { name : "衣服", fin : function(){ alert(this); //打印object alert(this.name); //打印衣服 this指的就是obj.clothing } }}
对象的第二种创建方法
//对象的第二种创建方式,可以通过new操作符来创建var obj = new Object();var arr = new Array();var date = new Date();var obj = new Object();obj.name = "胖胖";obj.age = 18;obj.sex = "男";obj.eat = function(){ alert("胖胖在吃饭");};obj.eat();var obj2 = new Object();obj2.name = "小明";obj2.age = 19;obj2.sex = "男";obj2.eat = function(){ alert("小明运动");};obj2.eat();//这种创建方式的缺点:想要创建一个相似的对象,就会产生大量代码
工厂模式
//工厂模式:可以解决第二种创建对象的缺点;function dog(name,age,sex){ //dog是不是相当一个类 var obj = new Object(); obj.name = name; obj.age = age; obj.sex = sex; return obj;}var obj1 = dog("小黑",3,"男");// alert(obj1.sex);var obj2 = dog("小红",2,"女");// alert(obj2.name)//alert(obj1 instanceof dog); //打印false 不能说明obj1是dog类的一个实例//缺点:不能识别创建的对象是哪个类的实例
构造函数
//函数也可以是构造函数(或者是类)//如果函数要当成构造函数来使用的话,就把第一个字符大写,区分普通的函数function Dog(name,age,sex){ //也可以说这里是一个Dog类 this.name = name; //这里的this指的是谁,答:指的就是当前new的对象 this.age = age; this.sex = sex;}var obj = new Dog("小黑",18,"男");// alert(obj.name);// alert(obj instanceof dog); //打印true 说是obj 是 Dog类的一个实例var obj1 = new Dog("小花",17,"女");
prototype
//prototype原型 相当于java中的static 静态的 公共的function Dog(name,age,sex){ this.name = name; this.age = age; this.sex = sex;}Dog.prototype.eat = function(){ //给Dog原型上添加一个eat方法,这样的话new一个对象都会具有这个方法 alert("吃东西");};var dog1 = new Dog("小花",3,"女");var dog2 = new Dog("小黑",3,"男");dog1.eat();dog2.eat();
给数组添加一个去重的方法
Array.prototype.removeRepetition = function(){ var arr = []; for(var i = 0; i < this.length; i++){ if( this.indexOf( this[i]) == i ){ arr.push(this[i]); } } this.length = 0; //this指的就是arr1 这里把arr1这个数组清空 for(var j = 0; j < arr.length; j++){ this[j] = arr[j]; }};var arr1 = [11,11,11,23];arr1.removeRepetition();alert(arr1);
阅读全文
0 0
- 继上一篇 对象、for in、
- 继上一篇,带光标的截屏
- php上传图片 继上一篇上传失败原因
- 继上一篇的thinkphp三级联动数据库
- 继上一篇,制作序列化类的编辑器
- for in 在js数组和对象上使用
- php文件下载(继上一篇的2个文件)
- 继上一篇文章,由于本地限制,等后续整理在一起
- 继上一篇博客之后,对数独解析方式进行了优化更新。
- Struts实现简单的文件下载(继上一篇文件上传)
- 对象 遍历 ( for in )
- 继所有人咒骂后的一篇
- 遍历json对象 for in
- JavaScript 自定义对象 for in
- java基础要点(6)面向对象-继
- for (变量 in 对象){执行代码}
- 使用for...in进行对象循环
- window对象(for x in windwo)
- 在CentOS系统中配置DNS服务
- 哈希查找(散列查找)
- TMS320C66x学习笔记之通用并行端口uPP
- fork之后子进程到底复制了父进程什么
- BLUE 评价指标总结
- 继上一篇 对象、for in、
- JsonView插件的使用
- mysql外键创建失败的问题
- tensorflow:name&variable scope
- 学了2天的Python,自己写了个简单的爬虫,可是爬虫有什么用呢?
- Makefile的编写规则
- 【深入Java虚拟机】之一:Javac编译与JIT编译
- android 底部导航总结
- leetcode69---Sqrt(x)