JS-面向对象相关
- onload 初始化 类似 构造函数初始化对象
- 全局变量 -> 属性
- 函数 -> 方法
- 面向对象中最重要的就是 this的理解 this报错的原因 定时器的使用
function Aaa()
{
var _this=this;
this.a=1; //使用定时器 其中的this 指向window
setInterval(function (){ _this.show();
}, 1000);
} Aaa.prototype.show=function ()
{
//如果不定义_this,那么this.a调用的就是 window
alert(this.a);
}; window.onload=function ()
{
new Aaa();
};
- Json方式 的面向对象
//相对简单 如果需要多个对象就不行了 比如 多点登录
var obj={a: 12, b: 5, c: function (){
alert(this.a);
}}; obj.c(); var p1={
name: 'blue',
sex: '男',
showName: function ()
{
alert('我的名字是:'+this.name);
},
showSex: function ()
{
alert('我的性别是'+this.sex+'的');
}
}; p1.showSex();
JS本身是没有继承标准的 js也没有提供标准 所谓的继承就是 具备父级的属性和方法 开发者根据需要 实现自己需求 用了各种方法
<?php
// PHP中的继承
class Person
{
function __construct($name, $sex)
{
$this->name=$name;
$this->sex=$sex;
} function showName()
{
echo $this->name;
} function showSex()
{
echo $this->sex;
}
} class Worker extends Person
{
function __construct($name, $sex, $job)
{
parent::__construct($name, $sex); $this->job=$job;
} function showJob()
{
echo $this->job;
}
} $w1=new Worker('blue', '男', '打杂的'); $w1->showName();
$w1->showJob();
?>
//js中的 一种继承写法
function Person(name, sex)
{
this.name=name;
this.sex=sex;
} Person.prototype.showName=function ()
{
alert(this.name);
}; Person.prototype.showSex=function ()
{
alert(this.sex);
}; //------------------------------------- function Worker(name, sex, job)
{
//this->new出来的Worker对象
//构造函数伪装 调用父级的构造函数——为了继承属性
Person.call(this, name, sex); this.job=job;
} //原型链 通过原型来继承父级的方法 这种赋值会影响Person的方法 不推荐使用
//Worker.prototype=Person.prototype;
//循环赋值
for(var i in Person.prototype)
{
Worker.prototype[i]=Person.prototype[i];
} Worker.prototype.showJob=function ()
{
alert(this.job);
}; var oP=new Person('blue', '男');
var oW=new Worker('blue', '男', 'php'); oP.showName();
oP.showSex(); oW.showName();
oW.showSex();
oW.showJob();
JS-面向对象相关的更多相关文章
- JS面向对象(3) -- Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...
- JS面向对象(2) -- this的使用,对象之间的赋值,for...in语句,delete使用,成员方法,json对象的使用,prototype的使用,原型继承与原型链
相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...
- JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式
相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...
- 拖拽系列二、利用JS面向对象OOP思想实现拖拽封装
接着上一篇拖拽系列一.JavaScript实现简单的拖拽效果这一篇博客将接着对上一节实现代码利用JS面向对象(OOP)思维对上一节代码进行封装; 使其模块化.避免全局函数污染.方便后期维护和调用:写到 ...
- JS面向对象笔记二
菜单导航,<JS面向对象笔记一>, 参考书籍:阮一峰之<JavaScript标准参考教程> 一.构造函数和new命令 二.this关键字 三.构造函数和new命令 四.构造函 ...
- js面向对象设计之class继承
EcmaScript 2015 (又称ES6)通过一些新的关键字,使类成为了JS中一个新的一等公民.但是目前为止,这些关于类的新关键字仅仅是建立在旧的原型系统上的语法糖,所以它们并没有带来任何的新特性 ...
- js面向对象设计之function类
本文仅探讨如何合理的使用 function 在 javascript中实现一个面向对象设计的类.总所周知,javascript 并不能实现一个真正意义上的类,比如 protect 比如 函数重载.下面 ...
- ES6学习笔记(三):教你用js面向对象思维来实现 tab栏增删改查功能
前两篇文章主要介绍了类和对象.类的继承,如果想了解更多理论请查阅<ES6学习笔记(一):轻松搞懂面向对象编程.类和对象>.<ES6学习笔记(二):教你玩转类的继承和类的对象>, ...
- js 面向对象 动态添加标签
有点逻辑 上代码 thml布局 点击查看代码 <!DOCTYPE html> <html lang="en"> <head> <meta ...
- js面向对象学习 - 对象概念及创建对象
原文地址:js面向对象学习笔记 一.对象概念 对象是什么?对象是“无序属性的集合,其属性可以包括基本值,对象或者函数”.也就是一组名值对的无序集合. 对象的特性(不可直接访问),也就是属性包含两种,数 ...
随机推荐
- Spring mvc与Struts2的比较
1. 机制:spring mvc的入口是servlet,而struts2是filter,这样就导致了二者的机制不同. 2. 性能:spring会稍微比struts快.spring mvc是基于方法的设 ...
- Java学习笔记(1)----规则集和线性表性能比较
为了比较 HashSet,LinkedHashSet,TreeSet,ArrayList,LinkedList 的性能,使用如下代码来测试它们加入并删除500000个数据的时间: package sr ...
- Word 关闭 Passive Voice
Sheryl prefers passive voice for some of her writing (such as business documents and correspondenc ...
- C# Winform选项卡集成窗体
知识要点:利用反射动态的加载窗体到对应的TabPage的. using System; using System.Collections.Generic; using System.Component ...
- rabbitmq集群配置
原文地址:http://www.360doc.com/content/14/0911/17/15077656_408713893.shtml 按照文章中的方式成功建立了两台机器的集群. 但文章中加入集 ...
- sql 2000 无法连接远程数据库 sqlserver不存在或访问被拒绝、不能打开到主机的连接,在端口1433:连接失败等 解决方案
问题: sql 2000 无法连接远程数据库 sqlserver不存在或访问被拒绝 telnet 127.0.0.1 1433 提示:不能打开到主机的连接,在端口1433:连接失败 解决方案: ...
- 转移RMS模拟器
在PowerShell中识别当前 RMS 模拟器 get-SCOMRMSemulator ?移至另一个管理服务器 –首先将一个新的RMS模拟器管理指定为一个变量 $MS = get-scommanag ...
- Linux下的Mysql备份/恢复
数据库逻辑备份 逻辑备份:将数据库的数据以逻辑的SQL语句的方式导出 查看帮助 mysqldump --help 0.数据库开启状态 1.备份某个特定的库: mysqldump -uroot -pro ...
- 乘风破浪:LeetCode真题_001_TwoSum
乘风破浪:LeetCode真题_001_TwoSum 一.前言 沉寂了很长时间,也悟出了很多的道理,写作是一种业余的爱好,是一种自己以后学习的工具,是对自己过往的经验积累的佐证,是检验自己理解深入度的 ...
- 沉淀,再出发:Django的简单使用
沉淀,再出发:Django的简单使用 一.前言 在学习了python的基础语法之后,其实大家都很怀疑python的使用场景,其实python在很多场合都有很强的适应性,就比如说web开发之中使 ...