<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. mysql-cluster集群配置

    环境: centos7:192.168.1.16,192.168.1.170 mysql-cluster-community-7.6.8-1.el7.x86_64.rpm-bundle.tar 安装: ...

  2. 分析一个MySQL并发事务示例

    小结: 1. https://mp.weixin.qq.com/s/hdDl95a6ayVtCoEc3RiLwQ 分析一个MySQL并发事务示例 性能与架构 1月12日   MySQL实战45讲 从原 ...

  3. X86-32位架构的CPU是不是内存只能到4G

    不是的,可以通过分页机制扩展实现超过4G内存的支持. 什么是分页机制扩展? PAE. 什么是PAE?   PAE如何实现的?  

  4. 3. Scala运算符

    3.1 运算符介绍 运算符是一种特殊的符号,用以表示数据的运算.赋值和比较等 1) 算术运算符 2) 赋值运算符 3) 比较运算符(关系运算符) 4) 逻辑运算符 5) 位运算符 3.2 算术运算符 ...

  5. Nginx的upstream反向代理、负载均衡详解

    这篇文章的前提是已经配置好了NGINX,而且tomcat已经配置好了,而且能能够访问了. 说反向代理之前,我们先看看正向代理,正向代理也是大家最常接触的到的代理模式. 正向代理最大的特点是客户端非常明 ...

  6. Linux基础命令1

    文件的操作: Tab键:自动补齐 反斜杠‘\’:强制换行 Ctrl+u:清空至行首 Ctrl+k:清空至行尾 Ctrl+l:清屏   --clear 清屏 Ctrl+c:取消本次命令编辑,中断当前操作 ...

  7. git 环境搭建

    1. 生成ssh-key 并上传到 git服务器上 #cd $HOME #ssh-keygen -t rsa -C "youremail@example.com" -t 是类型,- ...

  8. stm32高级定时器的应用——spwm

    用过stm32定时器的朋友都知道,定时器的CCR寄存器,可以用来配置PWM的输出,但同样也可以用来配置spwm.废话不多说,直接上代码. 首先,你得考虑一下几个因素: 1.同步调制还是异步调制.  2 ...

  9. vue组件弹窗

    定义弹窗组件 先写一个普通的vue组件,其显示的内容就是弹窗的内容. 文件的位置 /src/views/toast/toast.vue <template> <div class=& ...

  10. django--如何将数据结果集序列化传给前端页面展示

    示例为一对多的表关系,学生为多,老师为一,设置外键字段可以为空,也就是说关联的老师被删除该学生依然存在,只是相应字段留空 class Teacher(models.Model): name = mod ...