Javascript面向对象二
Javascript面向对象二
可以通过指定原型属性来对所有的对象指定属性,
Object.prototype.name="zhangsan";
Object.prototype.getType=function(){
var a=typeof(this);
alert(a);
}
var o=new Object();
var o2={};
var d=new Date();
o.getType();
o2.getType();
d.getType();
alert(o.name);
alert(o2.name);
alert(d.name);
//继承
Javascript中没有extends 关键字
但是可以通过类的prototype实现继承
function Person(){
}
Person.prototype={
name:"张三",
show:function(){
alert(this.name);
}
}
function Child(){
}
Child.prototype=Person.prototype;
var c=new Child();
c.show();
当改变Child的原型的show方法的时候,
Person对象的show也就改变了。
Child.prototype.show=function(){
alert("这个方法已经改变了");
}
var p=new Person();
p.show();//提示为这个方法已经改变
为了在改变Child的属性的时候 不改变Person的属性 我们可以通过 for in 和prototype属性来完成继承
function Person(){}
Person.prototype={
name:"zhangsan",
show:function(){
alert(this.name);
}
}
function Child(){}
var c=new Child();
for(var p in Person.prototype){
Child.prototype[p]=Person.prototype[p];
}
Child.prototype.show=function(){
alert("方法已经改变");
}
var p1=new Person();
c.show();//方法已经改变
p1.show();//zhangsan
可以为每一个对象指定一个特有的方法来实现继承
Function.prototype.extend=function(source){
for(var p in source.prototype){
this.prototype[p]=source.prototype[p];
}
}
function Person(){}
Person.prototype={
name:"zhangsan",
show:function(){
alert(this.name);
}
}
function Child(){}
Child.extend(Person);
var c=new Child();
// for(var p in Person.prototype){
// Child.prototype[p]=Person.prototype[p];
// }
Child.prototype.show=function(){
alert("方法已经改变");
}
var p1=new Person();
c.show();//方法已经改变
p1.show();//zhangsan
共有成员、私有成员和静态成员
Javascript并没有专门的机制来处理这些便量
想Java中我们通常定义类的时候会这么写
* public class Person{
* private String name;
* public void setName(String name){
* this.name=name;
* }
* public String getName(){
* return this.name;
* }
* }
而Javascript中我们得这么写
function Person(){
var name;//私有的成员
this.setName=function(nm){
this.name=nm;
}
this.getName=function(){
return name;
}
}
我们可以这么使用了
Var p=new person();
p.setnema("zhangsan");
p.getname();
javascript中定义静态成员和方法
person.staticName="这是一个人";
person.staticMothod=function(){
alert(person.staticNamse);
}
静态的属性和方法可以直接通过类名直接调用
Person.staticMothod();
注意:一个类的实例不能调用这个类的静态方法
转载于:https://www.cnblogs.com/chengzhipcx/p/4497652.html
Javascript面向对象二相关推荐
- JavaScript 面向对象(二) —— 案例篇
案例--面向对象的选项卡:把面向过程的程序一步步改成面向对象的形式,使其能够更加的通用(但是通用的东西,一般会比较臃肿). 下面是一个简单的选项卡,也是我们常见的面向过程的创建形式. 1 <!D ...
- (二)Javascript面向对象编程:构造函数的继承
Javascript面向对象编程:构造函数的继承 这个系列的第一部分,主要介绍了如何"封装"数据和方法,以及如何从原型对象生成实例. 今天要介绍的是,对象之间的"继承&q ...
- JavaScript 面向对象编程(二) —— 构造函数 / 原型 / 继承 / ES5 新增方法
本篇为 JavaScript 进阶 ES6 系列笔记第二篇,将陆续更新后续内容.参考:JavaScript 进阶面向对象 ES6 :ECMAScript 6 入门 : Javascript 继承机制的 ...
- JavaScript 面向对象(二)——案列篇
看案例前可以先看看基础篇:JavaScript 面向对象(一)--基础篇 案例--面向对象的选项卡:把面向过程的程序一步步改成面向对象的形式,使其能够更加的通用(但是通用的东西,一般会比较臃肿). ...
- 用JSON和Javscript的prototype来构建完善的Javascript面向对象表示法
[原文地址:http://www.cnblogs.com/robinhood/archive/2006/11/16/515412.html] 上次发贴没能很好的总结Javascrip编写类的方法,这次 ...
- javascript 面向对象编程(工厂模式、构造函数模式、原型模式)
javascript 面向对象编程(工厂模式.构造函数模式.原型模式) CreateTime--2018年3月29日17:09:38 Author:Marydon 一.工厂模式 /*** 工厂模式*/ ...
- Javascript 面向对象全新理练之数据的封装
JavaScript 是一种非常灵活的面向对象程序设计语言,它与传统的强类型的面向对象程序设计语言(如 C++,Java,C# 等)有很大不同,所以要实现如 C++.java.C# 当中的一些特性就需 ...
- JavaScript面向对象编程深入分析
JavaScript面向对象编程深入分析 一. Javascript 面向对象编程:封装 Javascript是一种基于对象(object-based)的语言,你遇到的所有东西几乎都是对象.但是,它又 ...
- 《javascript面向对象编程指南》读书笔记
<javascript面向对象编程指南>读书笔记 <javascript面向对象编程指南>读书笔记 第一章 面向对象的JavaScript 第二章 基本数据类型与流程控制 变量 ...
最新文章
- python基于Django框架编译报错“django.core.exceptions.ImproperlyConfigured”的解决办法?...
- 考前自学系列·计算机组成原理·中央处理器知识点
- Java IO流之转换流
- VTK:细胞中心演示用法实战
- C和指针之多维数组一行存满后会轮到下一行
- HTML如何添加锚点,论程序员成长的正确姿势
- 捡起JavaScript(1)
- 监督学习 | SVM 之非线性支持向量机原理
- 每日总结app_每日复盘不会写,怎么办?送你一份每日复盘总结模板
- python牛顿迭代法_Jacobi迭代算法的Python实现详解
- openLayer加载KML,画出省及省下的边界区域,并设置样式、各种标注及提示信息
- 正确学习PLC编程的方法
- 图像3尺度全小波包分解matlab,小波包分解
- 时间片轮转调度算法模拟(Linux-C语言)
- HTC T328W刷机包 仿三星S5 UI美化 精简 S5下拉
- HTML和CSS(7.17-7.20)
- 网站应用和服务器管理(课程总结4)Week12 澳大利亚维多利亚大学VIT1204 Web Application and Server Management
- 西游记不单单讲的是故事(1) ------ 摘自 吴闲云的《煮酒探西游》
- 短视频搬运神器,二次剪辑神器,涨粉热门必备软件,黑科技----效果杠杠的
- web大作业介绍自己的家乡_【天成好作文】胡缤云 二十年后的家乡
热门文章
- 「知识点」JavaScript 中11个有趣的事实
- python 7-24 sdut-array2-2-局部峰值 (10 分)
- 水泵怎么做_燃气壁挂炉初次调试,要怎么做才好?
- 安装oracle的口令是,Oracle中口令设置、用户解锁、卸载等问题
- mysql一张表可以用吗_MySQL表操作
- 计算机基础知识判断题答案,计算机基础知识试题及答案判断题模板.docx
- django 给单个文件加log_django配置日志模块
- mysql写php木马_PHP一句话木马小总结与SQL语句写一句话木马
- 谷歌大神Jeff Dean领衔,万字展望5大AI趋势
- html颜色对话框,网页颜色对话框的使用