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面向对象学习笔记 一.对象概念 对象是什么?对象是“无序属性的集合,其属性可以包括基本值,对象或者函数”.也就是一组名值对的无序集合. 对象的特性(不可直接访问),也就是属性包含两种,数 ...
随机推荐
- Modern Operating System
No one can do all things, learn to be good at use what others already did. Most computers have two m ...
- 安卓app开发-01-开发工具及环境配置
安卓app开发-01-开发工具及环境配置 请大家根据推荐指数和自己的意愿选择 使用 Android Studio 1.可以使用 Android Studio 下载地址:http://www.andro ...
- Socket for android 简单实例
最近在实现socket通信,所以写个demo来简单实现下.我用了一种是原始的socket实现,另一种是MINA框架来实现的. 下载demo:http://download.csdn.net/detai ...
- .net core系列之《在.net core中使用MemoryCache实现本地缓存》
说到内存缓存MemoryCache不由的让我想起.Net Framework中的MemoryCache,它位于 System.Runtime.Caching 程序集中. 接下来我们来看看.net co ...
- 快速设置UITableView不同section对应于不同种类的cell
快速设置UITableView不同section对应于不同种类的cell 本文主要是为了写明如何在UITableView中,一个section对应于一种类型的cell,写起来不凌乱. 在不封装任何类的 ...
- 用ISA2006配置单网卡缓存服务器
有些公司在部署ISA服务器之前已经有了自己的网络访问解决方案,例如通过硬件防火墙访问互联网,如果这种网络访问解决方案运行效果较好,公司就未必希望用ISA来替代当前的方案,毕竟稳定是第一位的.但在这种情 ...
- 创建 In-app Billing 商品
创建可供购买的 In-app Billing 商品 在你发布 In-app Billing 应用前,你需要在 Google Play 开发者控制台 定义可供购买的数字商品列表. 在 Google Pl ...
- Java List详解,面试中应该如何解答关于List的问题
对于面试,我们在介绍Java的List的时候,一般需要介绍到,什么是List?List包括什么?各自在用法上有什么区别,在存储上有什么区别?List需要注意什么?把这些问题串起来,我们可以这样介绍: ...
- 关于SpringMVC整合freemarker报错问题
错误信息: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'FreeMa ...
- selenium断言的分类
操作(action).辅助(accessors)和断言(assertion): 操作action: 模拟用户与 Web 应用程序的交互. 辅助accessors: 这是辅助工具.用于检查应用程序的状态 ...