<html>
<head>
<script></script>
</head>
<body>
<!-- <script>
///////////壹开始///////////
//javascript创建对象
//函数、方法、事件处理函数、构造函数
//函数可独立存在;方法属于对象;事件处理函数处理事件;构造函数构造对象 /*
* 定义一个数组
*/
var arr = [1,2,3,4,5]; alert(typeof arr); // 弹出object,证明数组是对象 arr.push(6);
alert(typeof arr);
///////////壹结束///////////
</script> --> <!-- <script>
/**
*定义一个全局函数
*/
//function show(){
//alert(this);
//} window.show = function(){ // 为对象添加方法,不能太随意添加方法和属性,否则会覆盖已有方法和属性
alert(this);
} //调用show
window.show();
</script> -->
<!-- <script>
var arr = [1,2,3,4,5];
arr.show = function(){ // 本例中this表示函数调用者,但是new创建对象,this并不是指向调用者
alert(this);
}
arr.show();
</script> --> <!-- <script>
//构造工厂
function personFactory(name,age){
var person = new Object();
person.name = name;
person.age = age; person.showName = function(){
alert("姓名:" + this.name);
} person.showAge = function(){
alert("年龄:" + this.age);
} return person;
} var p1 = personFactory("猪",23);
var p2 = personFactory("狗",22); p1.showName();
p1.showAge(); p2.showName();
p2.showAge();
</script> --> <!-- <script>
//使用new创建js对象
function Person(name,age){ //var this = new Object(); // 等效于这句话 this.name = name;
this.age = age; this.showName = function(){
alert("姓名:"+this.name);
}
this.showAge = function(){
alert("年龄:"+this.age);
} //用new调用函数,函数内的this会指向新创建空白对象,而不是方法调用者,会自动返回该对象 //return this; // 自动返回创建对象,等效于这句话
} var p1 = new Person("小猪八",20);
var p2 = new Person("小沙沙",19); alert(p1.showName == p2.showName); // == 仅仅数值是否相等,比较的是方法,而不是属性值
</script> --> <!-- <script>
function Person(name,age){
this.name = name;
this.age = age;
} //添加原型方法,这样创建的对象都是用的同一套方法
Person.prototype.showName = function(){
alert("姓名:"+this.name);
}
Person.prototype.showAge = function(){
alert("年龄:"+this.age);
} //创建2个对象
var p1 = new Person("小猪八",22);
var p2 = new Person("我是沙沙",20); alert(p1.showName == p2.showName);
alert(p1.showName == Person.prototype.showName);
alert(p2.showName == Person.prototype.showName); </script> --> <script>
Array.prototype.sum = function(){
var sum = 0;
for(var i=0;i<this.length;i++){ // this标示调用sum方法的数组对象
sum += this[i];
}
return sum;
} var arr1 = new Array(1,2,3,4,5,6);
var arr2 = [11,22,33,44,55]; alert(arr1.sum());
alert(arr2.sum()); alert(arr1.sum == arr2.sum);
alert(arr1.sum == Array.prototype.sum);
alert(arr2.sum == Array.prototype.sum);
</script> </body>
</html>

关于javascript的面向对象知识,可以亲自敲一遍加深理解。

javascript面向对象知识的更多相关文章

  1. JavaScript进阶【三】JavaScript面向对象的基础知识复习

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. JavaScript 面向对象开发知识基础总结

    JavaScript 面向对象开发知识基础总结 最近看了两本书,书中有些内容对自己还是很新的,有些内容是之前自己理解不够深的,所以拿出来总结一下,这两本书的名字如下: JavaScript 面向对象精 ...

  3. 【转】javascript面向对象编程

    摘要:本文本来是想自己写的,奈何花了好长时间写好之后忘记保存,还按了刷新键,一键回到解放前,索性不写了,所以本文是转载的. 面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式,主要包括模块化. ...

  4. Javascript基础知识总结一

    Javascript基础知识总结一 <!DOCTYPE html> <html> <head lang="en"> <meta chars ...

  5. 深入解读JavaScript面向对象编程实践

    面向对象编程是用抽象方式创建基于现实世界模型的一种编程模式,主要包括模块化.多态.和封装几种技术.对JavaScript而言,其核心是支持面向对象的,同时它也提供了强大灵活的基于原型的面向对象编程能力 ...

  6. 探讨javascript面向对象编程

    (个人blog迁移文章.) 前言: 下面将探讨javascript面向对象编程的知识. 请不要刻意把javascript想成面向对象编程是理所当然的. javascript里面,对象思想不可少,但是不 ...

  7. 第一百零九节,JavaScript面向对象与原型

    JavaScript面向对象与原型 学习要点: 1.学习条件 2.创建对象 3.原型 4.继承 ECMAScript有两种开发模式:1.函数式(过程化),2.面向对象(OOP).面向对象的语言有一个标 ...

  8. 《JavaScript面向对象编程指南》读书笔记②

    概述 <JavaScript面向对象编程指南>读书笔记① 这里只记录一下我看JavaScript面向对象编程指南记录下的一些东西.那些简单的知识我没有记录,我只记录几个容易遗漏的或者精彩的 ...

  9. 《JavaScript面向对象编程指南》读书笔记①

    概述 JavaScript快忘完了,想看一本专业书拾遗,所以看了这本<JavaScript面向对象编程指南>. 个人觉得这本书讲的很透彻很易懂,一些原来有疑惑的地方在这本书里面豁然开朗,看 ...

随机推荐

  1. 2018-2019-2 网络对抗技术 20165225 Exp5 MSF基础应用

    2018-2019-2 网络对抗技术 20165225 Exp5 MSF基础应用 验前准备 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 一个主动攻 ...

  2. numpy(五)

    排序: x=np.array([2,5,6,2,3,5]) np.sort(x)  不改变原数组 x.sort() 改变原数组 i=np.argsort(x) 返回排序好的索引值 x[i] 使用花哨索 ...

  3. opencart3调用三级菜单level 3 sub categories

    Opencart 3的menu菜单默认只调用一级和二级菜单,但很多电商网站类目复杂,三级菜单一般都是需要的,甚至更深,那么如何调用三级菜单level 3 sub categories呢?ytkah有一 ...

  4. 个人对stm32ADC编程关键点的理解

    平时在做项目或者参加比赛的过程中,个人觉得,有些东西写出来可能会帮助到新手少走弯路.(也很可能是错误的,欢迎大家纠错) 如果只是采集一路信号,直接用ADC独立模式,单通道就可以了. 如果需要同时采集多 ...

  5. 基数排序-LSD

    这个最低位优先的基数排序,非常适合移植到硬件设备中,所以,我们提供一个C源码 —————————————————————————————————————— #include <stdio.h&g ...

  6. Centos7 Lnmp的环境搭建

    centos  版本 [root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 关闭防火墙 sy ...

  7. ASP.NET gridview导出excel,防止繁体产生有乱码的方式

    //1.先引用比如 : using System; using System.Collections.Generic; using System.Linq; using System.Web; usi ...

  8. Delphi获取本机所有的IP

    安装Indy uses  IdStackWindows; var Isw:TIdStackWindows; slist:TStringList; begin Isw:=TIdStackWindows. ...

  9. Python伊始——From Boring to Amazing

    先来谈一下关于Python编程语言的浅薄认知,“一门编程课,仅此而已”这是我几个月前对这门应用技术的认识. 如今看来,却不只是“仅此而已”,作为今年年初被加入计算机二级考试科目的这门技术,或许并不是它 ...

  10. getparameter的使用

    在做项目的过程中,会遇到跳转的页面,直接打开到里面的子项,这个时候,看了UI给我设计了四个页面,如果做四个页面,肯定是可以实现的.但是这个不符合前端的设计.就在想通过点击传值进去,肯定是能够获取到的. ...