javascript 实例 静态 公共 私有
传统 javascript 的原型对象 和 ts的类 对比

传统原型队形说明:
//对象构造函数
function Atest(name) {
//私有属性,只能在对象构造函数内部使用
var className = "Atest";
//公有属性,在对象实例化后调用
this.name = name;
//对象方法
this.hello = function () {
alert(this.name);
alert(this.msg()); //使用原型方法扩充的方法可以在类内部使用
alert(this.sex); //使用原型方法扩充的属性可以在类内部使用
alert(Atest.age); //静态属性调用时格式为[对象.静态属性]
}
}
//类方法 (实际是静态方法直接调用) 位置:Person类的外部 语法格式:类名称.方法名称 = function([参数...]){ 语句行; }
Atest.Run = function () {
alert("我是类方法 Run");
}
//原型方法
Atest.prototype.msg = function () {
alert("我的名字是:" + this.name); //如果原型方法当作静态方法直接调用时,this.name无法被调用
}
//公有静态属性 在类的外部
Atest.age = 20; //公有静态属性不能使用 【this.属性】,只能使用 【对象.属性】 调用
//原型属性,当作是类内部的属性使用【this.原型属性】,也可以当成公有静态属性使用【对象.prototype.原型属性】
Atest.prototype.sex = "男";
Atest.Run(); //类方法也是静态方法,可以直接使用 【对象.静态方法()】
Atest.prototype.msg(); //原型方法当成静态方法使用时【对象.prototype.方法()】
alert(Atest.prototype.sex); //原型属性当作静态属性使用时【对象.prototype.方法()】
var a = new Atest("zhangsan"); //对象方法和原型方法需要实例化对象后才可以使用
a.hello(); //对象方法必须实例化对象
a.msg(); //原型方法必须实例化对象
alert(a.age); //错误,公有静态属性只能使用 【对象.属性】调用
//ps:尽量将方法定义为原型方法,原型方法避免了每次调用构造函数时对属性或方法的构造,节省空间,创建对象快.
javascript 实例 静态 公共 私有的更多相关文章
- 使用JAVASCRIPT实现静态物体、静态方法和静态属性
Javascript语言的面向对象特征非常弱.其它面向对象语言在创建类时仅仅要使用keywordstatic就可以指定类为静态类,Javascript没有提供static这种keyword.要让Jav ...
- python基础-类的属性(类属性,实例属性,私有属性)
一:类的属性 类的属性分为:类属性(公有属性),实例属性和私有属性. 1)类属性(公有属性(静态字段): 类定义时直接指定的属性(不是在__init__方法中),可以通过类名直接访问属性,并且保存 ...
- JavaScript实例
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...
- 每天一个JavaScript实例-从一个div元素删除一个段落
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- 每天一个JavaScript实例-推断图片是否载入完毕
<!doctype html> <html lang="en"> <head> <meta charset="utf-8&quo ...
- 每天一个JavaScript实例-动态省份选择城市
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- 每天一个JavaScript实例-递归实现反转数组字符串
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- 每天一个JavaScript实例-html5拖拽
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- 每天一个JavaScript实例-canvas绘图
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
随机推荐
- IDEA - 使用总结
查找 Search Everywhere : Double Shift 本文件查找:Ctrl + f 本项目查找:Ctrl + Shift + f 打开类或方法:Ctrl + B 查找类:Ctrl + ...
- Java知多少(13)流程控制
Java流程控制的语法与 C/C++ 类似,也有 if...else.while.do...while.for.switch...case等,这里不再讲述具体语法,仅举例说明. 输出九九乘法表(右上三 ...
- Storm常见模式——流聚合
转自:http://www.cnblogs.com/panfeng412/archive/2012/06/04/storm-common-patterns-of-stream-join.html 流聚 ...
- pathway 中几张特殊的通路图
pathway 的ID 是5个数字的组合,在pathway 数据库中,有几类通路图非常特殊: 1) 第一类, 以 011 开头的通路 共有 01100, 01120, 01130 三张通路图,从外观 ...
- 大杂烩 -- Java内存布局【图】以及java各种存储区【详解】
基础大杂烩 -- 目录 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 一.Java内存布局浅谈 1. 总述 我们知道,线 ...
- vue封装第三方插件并发布到npm
前言 写此文前特意google了一下,因为有较详细的开发教程我再写意义不大,有把插件封装成组件的教程,有把自己的组件封住成插件的教程,本文主要说明如何把第三方的插件封装成vue插件,简化配置,一键安装 ...
- JavaScript 之 function函数及参数arguments
JavaScript用function关键字声明函数,可以用return返回值,也可以没有返回值. 建议:要么统一有返回值,要么统一都没有返回值,这样调试代码方便. 函数定义格式: function ...
- G - Line of Sight
来源poj2074 An architect is very proud of his new home and wants to be sure it can be seen by people p ...
- 使用 Markdown 写技术博客,踩过的 6个坑
目录 Markdown 特性 Markdown 简介 常用语法 为什么流行 设计哲学 工具支持 版本演进 标准化之路 踩过了坑 平台帮助文档 语法差异 显示效果 我的最佳实践 摘要:本文记录我在使用 ...
- POJ 1102 - LC-Display
Description A friend of you has just bought a new computer. Until now, the most powerful computer he ...