1.javascript基本数据类型:
number: 数值类型
string: 字符串类型
boolean: 布尔类型
null: 空类型
undefault:未定义类型
object: 基本数据类型的父类

2.创建对象
(1)自定义对象:
语法:var 对象名=new object();

例: var flower=new Object();
flower.name="长春花";
flower.showName=function(){
// this.name="牡丹花";//重新赋值
alert(this.name);
}
var flower1=new flower();
调用方式:对象名.属性或者方法

(2)内置对象:

String(字符串)对象
Date(日期)对象
Array(数组)对象
Boolean(逻辑)对象
Math(算数)对象
RegExp对象

3.构造函数:
构造函数的步骤:
(1)创建一个新对象
(2)将构造函数的作用域给新对象(this就指向这个新对象)
(3)执行构造函数中的代码
(4)返回新对象

语法:function 函数名(){} 注:函数名首字母大写

例:function Flower(){

}

constructor属性:
instanceof属性:
两种方式均是标识对象类型的(判断关键字前后是否具有上下级关系(层次)),但常用第二种方法
例:
// alert(flower2.constructor==Flower);
// alert(flower1.constructor==flower2.constructor);
alert(flower1 instanceof Object);//判断关键字前后是否具有上下级关系(层次)
alert(flower1 instanceof Flower);

4.原型对象:
使用prototype属性调用构造函数而创建的那个对象实例的原型对象,
使用原型对象的好处就是可以让所有对象实例共享它所拥有的属性和方法

语法:函数名.prototype.属性名="值";

例:function Flower(){}//创建一个无参的构造函数
Flower.prototype.name="长春花";//给Flower原型对象创建属性并赋值
Flower.prototype.area="非洲";

5.原型链:
例:
//创建一个父类
function Humans(){//创建一个无参的构造
this.foot=2;
}
Humans.prototype.getFoot=function(){
alert(this.foot);
}
//创建子类
function Man(){
this.head=1;
}
Man.prototype =new Humans();//原型继承一定要写在原型对象赋值之前
Man.prototype.getHead=function(){
alert(this.head);
}
var man1=new Man();
alert(man1.getFoot());
man1.getHead();
//alert(man1 instanceof Humans);
// alert(man1 instanceof Man);
alert( typeof man1);
alert(man1.valueOf());

6.对象继承:
function Humans(){//创建一个无参的构造
this.name=["aa","bb","cc"];
}

//创建子类
function Man(){
this.head=1;
}
Man.prototype =new Humans();

var man1=new Man();
man1.name.push("dd");//如果你赋值的是引用数据类型,相当于改原构造中的值
man1.getName();
var man2=new Man();
man2.getName();

7.借用构造函数:
语法:apply([thisObj[,argArray]]) 应用某一对象的一个方法,用另一个对象替换当前对象
call([thisObj[,arg1[,arg2[,argn[,...]]]]]) 调用一个对象一个方法,以另外一个对象替换当前对象

例: function Humans(){
alert("无参构造");
this.clothing=["哈哈","嘻嘻","呵呵"];
}
function Humans(name){
alert("有参构造");
this.name=name;
}
function Man(){
//Humans.call(this);//继承了Humans对象无参构造
Humans.call(this,"嘿嘿");//调用有参构造
this.age=19;
}
var man1=new Man();
alert(man1.clothing);//undefind
alert(man1.name);//嘿嘿
alert(man1.age);//19

8:组合函数:
组合继承有时也叫伪经典继承,指的是将原型链和借用狗杂函数的技术结合到一块,从而发挥二者之长
例: function Humans(name,age){//创建有参构造
this.name=name;
this.age=age;
}
Humans.prototype.getName= function () {//创建Humans原型对象的方法
alert(this.name);
}
function Man(name,age){//创建Man有参构造
Humans.call(this,name,age);//继承父类的构造
/* 等价于this.name=name;
this.age=age;*/
this.head=1;
}
Man.prototype=new Humans();//继承父类的原型对象的属性
Man.prototype.getHead=function(){
alert(this.head);
}
var man1=new Man("aa",20);
man1.getName();
//alert(man1.name);
//alert(man1.age);
var man2=new Man("bb",25);
man2.getName();
// alert(man2.name);
// alert(man2.age);
// Man.prototype=new Humans();

初识JavaScript和面向对象的更多相关文章

  1. JavaScript的面向对象编程(OOP)(一)——类

    在学习JavaScript面向对象的编程之前,需要知道,并了解面向对象的一些基本的常识.初学者中大多数都以为面向对象中,面向对象的编程是很重要和占据很大一部分精力.笔者在之前也是认为OOP是面向对象的 ...

  2. javascript进阶——面向对象特性

    面向对象的javascript是这门语言被设计出来时就考虑的问题,熟悉OOP编程的概念后,学习不同的语言都会发现不同语言的实现是不同的,javascript的面向对象特性与其他具有面向对象特性的语言的 ...

  3. 笔记一、初识 Javascript

    一.初识 Javascript javascript是一种专为与网页交互儿设计的脚本语言.由三部分组成:ECMAScript  (ECMA-262定义) : 提供核心语言功能文档对象模型(DOM): ...

  4. Day15 HTML补充、初识JavaScript

    一.上节回顾 上节回顾: HTML 头部信息:编码.title.style.link(导入css文件) 身体: 内联 块级 --->inline-block(既有内联效果又有块级效果) a标签: ...

  5. javascript的面向对象详解

    每次说到javascript到面向对象,总感觉自己心里懂,但是却不知道该怎么说,这就是似懂非懂到表现,于是乎,每次一说,就要到处去查找资料,零零碎碎到看了一些,感觉有懂了,但是过段时间,好像又不知道是 ...

  6. 初识JavaScript(一)

    初识JavaScript(一) 最近由于工作的需要的原因,我从一个写后台的现在让我转到写前端,再加上我的js部分特别的差,所以我现在开始学习js部分的知识. 我的第一篇博文就这样开始写了.俗话说,千里 ...

  7. 浅谈JavaScript的面向对象程序设计(四)

    本文继续讲解JavaScript的面向对象程序设计.继承是面向对象语言中的一个基本概念,面向对象语言支持两种继承实现方式:接口继承和实现继承.接口继承只继承方法签名,而实现继承则继承实际的方法.但是在 ...

  8. 《前端之路》之 初识 JavaScript

    01 初识 JavaScript 作为在码农圈混迹了 四五年的老码畜来说,学习一门新的语言,就仿佛是老司机开新车一样 轻车熟路. 为什么会这么快呢? 因为各种套路啊- 任何一种计算机语言的最开始都是和 ...

  9. JavaScript的面向对象原理之原型链详解

    一.引言 在16年的10月份,在校内双选会找前端实习的时候,hr问了一个问题:JavaScript的面向对象理解吗?我张口就说“JavaScript是基于原型的!”.然后就没什么好说的了,hr可能不知 ...

随机推荐

  1. 9.秋招复习简单整理之Spring面试AOP和IOC的理解

    1.Spring的AOP理解: OOP面向对象,允许开发者定义纵向的关系,但不适用于定义横向的关系,导致了大量代码的重复,而不利于各个模块的重用. AOP,一般称为面向切面,作为面向对象的一种补充,用 ...

  2. ueditor 常用配置

    scaleEnabled:是否可以拉伸长高,默认true(当开启时,自动长高失效) autoHeightEnabled:是否自动长高,默认true catchRemoteImageEnable:设置远 ...

  3. 简单学习之json格式说明

    json格式说明: 1.对象是一个无序的“‘名称/值’对”集合. (1)一个对象以“{”(左括号)开始,“}”(右括号)结束. (2)每个“名称”后跟一个“:”(冒号): (3)“‘名称/值’ 对”之 ...

  4. kafka介绍及安装配置(windows)

    Kafka介绍 Kafka是分布式的发布—订阅消息系统.它最初由LinkedIn(领英)公司发布,使用Scala和Java语言编写,与2010年12月份开源,成为Apache的顶级项目.Kafka是一 ...

  5. CF39D Cubical Planet-C++

    银河系中没有你找不到的东西!有一颗形状为立方体的的行星正在绕着一颗形状为二十面体的恒星运转.现在我们让这颗行星的两个在同一条体对角线上的顶点置于(0,0,0)和(1,1,1)上.有两只苍蝇住在行星上. ...

  6. Lucene01--倒排索引思想

    Lucene01--倒排索引思想 1. 倒排索引的概念: 首先对数据按列拆分存储,然后对文档中的数据分词,对词条进行索引,并记录词条在文档中出现的位置.这样查找时只要找到了词条,就找到了对应的文档.概 ...

  7. [JavaWeb] Ubuntu下载eclipse for ee

    进入网站进行下载 https://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/2019- ...

  8. DEDECMS教程:织梦栏目更新HTML出现“模板文件不存在,无法解析文档”的解决方法(转)

  9. SQLyog连接数据库报错plugin caching_sha2_password could not be loaded

    摘录自: https://blog.csdn.net/lihua5419/article/details/80394716

  10. 从flink-example分析flink组件(3)WordCount 流式实战及源码分析

    前面介绍了批量处理的WorkCount是如何执行的 <从flink-example分析flink组件(1)WordCount batch实战及源码分析> <从flink-exampl ...