目录

1:创建对象

2:工厂模式创建对象

3:自定义构造函数创建对象

4:自定义构造函数做了那些事情

5:字面量方式创建对象:一次性对象

6:对象总结

7:json数据类型

8:简单数据类型和复杂数据类型

9:Math

复习

正文

1:调用系统构造函数创建对象

 <script>
//创建对象三种方式:
/*
*
* 1.调用系统的构造函数创建对象
* var 变量名= new Object(); Object 是系统的构造函数 Array
*
* 2.自定义构造函数创建对象(结合第一种和需求通过工厂模式创建对象)
*
*
* 3.字面量的方式创建对象
*
* 4:工厂模式创建对象
* */ //第一种创建对象的方式
//小苏举例子:
//实例化对象
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(); //练习:有一个黄色的小狗,叫大黄,今年已经三岁了,250斤的重量每次走路都很慢,喜欢吃大骨头
//练习:创建一个手机对象,手机有型号,有颜色,可以打电话和发短信 </script>

2:工厂模式创建对象

  <script>

    /*
*
* 如何获取该变量(对象)是不是属于什么类型的?
* 语法:
* 变量 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("小红",30);
per2.sayHi(); </script>

3:自定义构造函数创建对象

 <script>

    //自定义构造函数创建对象,我要自己定义一个构造函数,自定义构造函数,创建对象
//函数和构造函数的区别;名字是不是大写(首字母是大写)
// 自定义构造函数可以直接调用(和普通函数一样。) Person();
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); </script>

4:自定义构造函数做了那些事情

<script>

    /*
*
* 1. 在内存中开辟(申请一块空闲的空间)空间,存储创建的新的对象
* 2. 把this设置为当前的对象
* 3. 设置对象的属性和方法的值
* 4. 把this这个对象返回
*
* */
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(); </script>

5:字面量方式创建对象:一次性对象

<head>
<meta charset="UTF-8">
<title></title>
<script>
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(); </script>
</head>

6:对象总结

<script>

    //字面量创建对象的缺陷: 一次性的对象

    //    var obj={
// name:"小明",
// age:38,
// sex:"女"
// };
// obj.name="小三";
// console.log(obj.name); //点语法: 对象.名字=值; 对象.名字=函数;
//没有什么点,就有了 /*
*
* js是一门什么样的语言?
* 是一门解释性的语言
* 是一门脚本语言
* 是一门弱类型语言,声明变量都用var
* 是一门基于对象的语言
* 是一门动态类型的语言:
* 1. 代码(变量)只有执行到这个位置的时候,才知道这个变量中到底存储的是什么,如果是对象,就有对象的属性和方法,如果是变量就是变量的作用
* 2. 对象没有什么,只要点了,通过点语法,那么就可以为对象添加属性或者方法
*
* */ // var obj = {};//空对象
// obj.name = "看名字";
// obj.age = 10;
// obj.fly = function () {
// console.log("飞吧");
// }; </script>

7:Json格式的数据

<script>
//对象:有属性和方法,特指的某个事物
//对象:一组无序属性的集合的键值对,属性的值可以是任意的类型
// function Dog(name) {
// this.name=name;
// }
// function Person(name,age) {
// this.age=age;
// this.name=name;
// this.sex=true;
// this.dog={};
// this.play=function () {
// console.log("喜欢玩游戏");
// };
// }
//
// var sex=false;//男
// console.log(sex?"男":"女"); //JSON格式的数据:一般都是成对的,是键值对, //json也是一个对象,数据都是成对的,一般json格式的数据无论是键还是值都是用双引号括起来的 // var obj={
// name:"小明"
// }; var json = {
"name": "小明",
"age": "10",
"sex": "男"
};
//遍历对象,是不能通过for循环遍历,无序 //key是一个变量,这个变量中存储的是该对象的所有的属性的名字
for (var key in json) {
console.log(key + "===========" + json[key]);
} // var key="name";
// console.log(json[key]);
//可以通过for-in循环
//
// for(var key in json){
// //console.log(key);//json对象中的属性的名字
// console.log(json[key]);
// }
//对象中确实有这个属性对象.属性名字 或者对象[属性名字] //一个一个的遍历出来 // var arr=[10,20,30];
// for(var i=0;i<arr.length;i++){
// console.log(arr[i]);
// } </script>

8:简单数据类型和复杂数据类型

  <script>

    //原始数据类型: number,string,boolean,undefined, null,object
//基本类型(简单类型),值类型: number,string,boolean
//复杂类型(引用类型):object
//空类型:undefined,null //值类型的值在哪一块空间中存储? 栈中存储
//引用类型的值在哪一块空间中存储?对象在堆上存储,地址在栈上存储 //var num=10;//值类型,值在栈上
//var obj={};//复杂类型,对象在堆,地址(引用)在栈 //值类型之间传递,传递的是值
//引用类型之间传递,传递的是地址(引用) //值类型作为函数的参数,传递的是值
//引用类型作为函数的参数,传递的是地址 // var num=10;
// var num2=num;//传递的值 // function f1(x) {
// x=100;
// }
// var num=10;
// f1(num);
// console.log(num);// var obj={
name:"小明"
};
function f2(obj2) {
obj2.name="小红";
}
console.log(obj.name);//
f2(obj);
console.log(obj.name);// </script>

9:Math

 <script>

    //MDN----在线的帮助文档

    // 实例对象:通过构造函数创建出来,实例化的对象
// 静态对象:不需要创建,直接就是一个对象,方法(静态方法)直接通过这个对象名字调用,
// 实例方法必须通过实例对象调用
// 静态方法必须通过大写的对象调用
// Math是对象,不是构造函数
// Math.PI----π---
// Math.E----常数的底数
// Math.abs(值)-----绝对值
// Math.ceil(值)----向上取整
// Math.floor(值)---向下取整
// Math.max(值)---求最大值
// Math.min(值)---求最小值
// Math.pow(2,4)---求2的4次方
// Math.sqrt(16)---求16开方 // console.log(Math.PI);
// console.log(Math.E); //var mt=new Math(); // console.log( Math.abs('-1'));//1
//
// console.log( Math.abs(-2));//2
// console.log(Math.abs(null));//---------0 重点
// console.log(Math.abs("string"));//NaN // console.log(Math.ceil(12.3));
// console.log(Math.ceil(12.9));
// console.log(Math.ceil(12.09));
// console.log(Math.ceil(12.03));
// console.log(Math.ceil(12.92)); // console.log(Math.floor(12.3));
// console.log(Math.floor(12.9));
// console.log(Math.floor(12.09));
// console.log(Math.floor(12.03));
// console.log(Math.floor(12.92)); // console.log(Math.fround(2));
// console.log(Math.fround(2.1));
// console.log(Math.fround(2.9)); //找一坨数字中的最大值 // console.log(Math.max(10,1,9,100,200,45,78));
// console.log(Math.min(10,1,9,100,200,45,78));
// console.log(Math.pow(2,4));
// console.log(Math.sqrt(16)); //0-4 没有5
console.log(parseInt(Math.random()*5)+1);
console.log(parseInt(Math.random()*100)+1); </script>

注意

15 (H5*) JS第5天 对象的更多相关文章

  1. js中两个对象的比较

    代码取自于underscore.js 1.8.3的isEqual函数. 做了一些小小的修改,主要是Function的比较修改. 自己也加了一些代码解读. <!DOCTYPE html> & ...

  2. JavaScript -- 时光流逝(五):js中的 Date 对象的方法

    JavaScript -- 知识点回顾篇(五):js中的 Date 对象的方法 Date 对象: 用于处理日期和时间. 1. Date对象的方法 <script type="text/ ...

  3. JavaScript -- 时光流逝(四):js中的 Math 对象的属性和方法

    JavaScript -- 知识点回顾篇(四):js中的 Math 对象的属性和方法 1. Math 对象的属性 (1) E :返回算术常量 e,即自然对数的底数(约等于2.718). (2) LN2 ...

  4. JavaScript -- 时光流逝(三):js中的 String 对象的方法

    JavaScript -- 知识点回顾篇(三):js中的 String 对象的方法 (1) anchor(): 创建 HTML 锚. <script type="text/javasc ...

  5. js的数组与对象关系

    有的时候总犯糊涂,不理解对象和数组的关系,转载一篇文章,深刻记忆一下 http://hi.baidu.com/samdan/item/05179313d1ee4b9e99ce3371 比如有一个数组a ...

  6. H5+JS+CSS3 综合应用

    慕课网新教程H5+JS+CSS3 实现的七夕言情主题效果已经出炉了 从设计到实现到录制与编写用了快1个月的时间,说真的这个案例是慕课定制的,我之前也没有系统的做过这样的一个效果,在实现的时候自己也重新 ...

  7. iOS原生APP与H5+JS交互////////////////////zzzz

    原生代码中直接加载页面 1.    具体案例 加载本地/网络HTML5作为功能介绍页 2.    代码示例 //本地 -(void)loadLocalPage:(UIWebView*)webView ...

  8. JS入门之ActiveXObject对象(转载)

    JS入门之ActiveXObject对象   此对象提供自动化对象的接口.   function ActiveXObject(ProgID : String [, location : String] ...

  9. JS中的event 对象详解

    JS中的event 对象详解   JS的event对象 Event属性和方法:1. type:事件的类型,如onlick中的click:2. srcElement/target:事件源,就是发生事件的 ...

随机推荐

  1. windows 10 安装openssh 0x800f0954 的一种解决方法

    安装与卸载参考:https://docs.microsoft.com/zh-cn/windows-server/administration/openssh/openssh_install_first ...

  2. python3-多重继承

    继承是面向对象编程的一个重要的方式,因为通过继承,子类就可以扩展父类的功能. 回忆一下Animal类层次的设计,假设我们要实现以下4种动物: Dog - 狗狗: Bat - 蝙蝠: Parrot - ...

  3. Hadoop之MapReduce 本机windows模式运行

    hadoop在windows本机运行 (1)在 windows环境下编译好的hadoop放到没有中文和空格的路径下 (2)编译好的hadoop内的hadoop.all文件要放到windows机器的wi ...

  4. Bloom Filter的算法

     Bloom Filter的算法: 为了降低冲突的概念,Bloom Filter使用了多个哈希函数,而不是一个.创建一个m位BitSet,先将所有位初始化为0,然后选择k个不同的哈希函数.第i个哈希函 ...

  5. NOIP2015 D1T1 神奇的幻方

    洛谷P2615 很简单的模拟题……每枚举一个点只要保存上一个点的x,y值即可,不用开数组存放 另外题目中对于K的操作都在K-1的九宫格范围内,所以我们巧妙运用++和--就可以做到每个分支一行代码 还有 ...

  6. [CF1051F] Shortest Statement

    问题描述 You are given a weighed undirected connected graph, consisting of n vertices and m edges. You s ...

  7. echart-折线图,数据太多想变成鼠标拖动和滚动的效果?以及数据的默认圈圈如何自定义圆圈的样式

    1.数据太多怎么办???想拖拽,想滑动 dataZoom: [ { type: 'slider', } ] dataZoom: [ { type: 'inside',  }] 两种功能都需要,还想调样 ...

  8. PHP开发工具PHP基础教程

        PHP开发 工具PHP基础教程,以下是兄弟连PHP培训小编整理: PHP IDE PHP IDE也不少,主要从几个方面进行筛选: 跨平台(能够同时在windows,mac或者ubuntu上面运 ...

  9. PHP入门培训教程 php动态网页怎么转换成html

       当动态网页遇上搜索引擎 虽然动态网页相比于静态页面拥有许多优势,但它在搜索引擎的检索上却碰了个大钉子.无论任何一家网站,尤其是那些以营销为目的的企业网站,没有谁会希望自己的网页无法被搜索引擎检索 ...

  10. PHP生成静态网页的方法

    看到很多朋友在各个地方发帖问PHP生成静态文章系统的方法,以前曾做过这样一个系统,遂谈些看法,以供各位参考.兄弟先带大家回顾一些基本的概念. 一,PHP脚本与动态页面. PHP脚本是一种服务器端脚本程 ...