文档章节

js 类的简单实现与调用

帝江
 帝江
发布于 2016/06/15 20:26
字数 264
阅读 5
收藏 0

js类的简单实现与调用

先上一段小代码.里面有注释.

<html>
<script>
function people(name) {
	this.name = name;
	this.version = 0;
	
	//展示name
	this.showName = function() {
		alert('my name is ' + this.name);
	}
	
	//设置name
	this.setName = function(name) {
		this.version++;
		this.name = name;
		
	}
	
	//获取name
	this.getName = function() {
		return this.name;
	}
	
}

//这种形式定义的方法不能使用类的属性
people.run = function() {
	alert('I can run');
}

//原型方法,可以使用类的属性
people.prototype.showMyName = function() {
	if(this.version > 0) str = '我改名字了。现在叫 ' + this.name;
	else str = '我的名字叫 ' + this.name;
	alert(str);
}


function dog() {
	this.name = false;
	this.master = false;
	
	this.setName = function(name) {
		this.name = name;
	}
}

dog.prototype.getName = function() {
	return this.name;
}

dog.prototype.setMasterName = function(master) {
	this.master = master;
}

dog.prototype.getMasterName = function() {
	return this.master;
}

//测试
var p = new people('Jim');
p.showName();

var d = new dog();
d.name = '旺财';
alert(d.getName());

d.setMasterName(p.getName());

alert(d.getMasterName());
alert(d.name + ' 的主人是 : ' + d.master);

alert(d.getName() + ' 的主人是 : ' + d.getMasterName());
</script>
</html>

js里面没有严格的类.只有一层一层的function.理论上有无限层.

js继承

   

<script>
    function base(aa) {
        this.aa = aa;

        function get_aa() {
            return this.aa;
        }
    }

    function sun() {
        function show() {
            return 'I am sun show';
        }
    }

    sun.prototype=new base('hello world');
    
    alert(sun.get_aa()); //输出 hello world
    alert(sun.show());   //输出 I am sun show
</script>

 

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
帝江
粉丝 1
博文 4
码字总数 423
作品 0
济南
程序员
私信 提问
JavaScript和Lua的类继承

javascript 本身虽是一门面向对象的编程语言, 但并没有明确提供继承方式.二十多年间,众多高手提供很多模拟继承的实现, 主要的有:对象冒充,call/apply,prototype,以及深复制等. 网上有很多此类...

南苑听风
2014/10/31
0
3
React Native Android 源码分析之启动过程

前言 这篇开始将分析 React Native 是在 Android 端的启动过程是怎么样。 用过 React Native 的小伙伴都知道,React Native 是可以使用 JS 来编写一份代码,并可以同时跑在 Android 和 iOS ...

骑摩托马斯
07/09
0
0
​基于 WKWebview 进行二次封装的 WebView - KSWebView

KSWebView,最好的 WKWebView 继承者。 KSWebView是基于WKWebview进行2次封装的WebView。 KSWebView具有: 用JS语句的方式调用原生类/对象,方便快捷,老板提出来的临时需求也能马上解决的方...

kinsunlu
08/30
0
0
从Android到React Native开发(二、通信与模块实现)

大家吼,(◐‿◑)作为失踪人口回归,这次第二期,就让我们来怼React Native的通信,快速实现单独的React Native模块到APP里,愉悦吧骚年。至于为什么要有这期?当然是为了愉悦的飙车啦ε-...

carguo
08/22
0
0
weex eros框架源码解析

weex eros是基于alibaba weex框架进行二次封装的客户端跨平台开发框架,主要是为前端开发者(可以不用熟悉客户端开发)提供的一站式客户端app开发解决方案。官网地址为:https://bmfe.github...

雅爸学技术
05/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

搭建Git服务器

Windows平台下搭建Git服务器 1、在自己电脑搭建Git服务器,且只有自己的电脑能访问。 即使是自己一个人在开发代码也强烈建议使用Git来管理代码。当然也可以只使用本地Git仓库的形式来管理代码...

国仔饼
14分钟前
0
0
百万并发下的Nginx优化,看这一篇就够了!

本文作者主要分享在 Nginx 性能方面的实践经验,希望能给大家带来一些系统化思考,帮助大家更有效地去做 Nginx。 优化方法论 我重点分享如下两个问题: 保持并发连接数,怎么样做到内存有效使...

JackFace
16分钟前
0
0
中学生读《皮囊》有感相关体会4300字[图]

中学生读《皮囊》有感相关体会4300字[图]: 我们时常知道从哪里来,但很少知道自己要到哪里去,因为我们经常不认识自己,又怎能看见自己皮囊下最真实的面目?——题记 满怀欣喜去迎接五一,应...

原创小博客
25分钟前
2
0
java_集合

非并发集合 并发集合

grace_233
26分钟前
2
0
正则表达式匹配不包含

^((?!xxx).)*$

安小乐
38分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部