传统 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 实例 静态 公共 私有的更多相关文章

  1. 使用JAVASCRIPT实现静态物体、静态方法和静态属性

    Javascript语言的面向对象特征非常弱.其它面向对象语言在创建类时仅仅要使用keywordstatic就可以指定类为静态类,Javascript没有提供static这种keyword.要让Jav ...

  2. python基础-类的属性(类属性,实例属性,私有属性)

      一:类的属性 类的属性分为:类属性(公有属性),实例属性和私有属性. 1)类属性(公有属性(静态字段): 类定义时直接指定的属性(不是在__init__方法中),可以通过类名直接访问属性,并且保存 ...

  3. JavaScript实例

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

  4. 每天一个JavaScript实例-从一个div元素删除一个段落

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  5. 每天一个JavaScript实例-推断图片是否载入完毕

    <!doctype html> <html lang="en"> <head> <meta charset="utf-8&quo ...

  6. 每天一个JavaScript实例-动态省份选择城市

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  7. 每天一个JavaScript实例-递归实现反转数组字符串

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  8. 每天一个JavaScript实例-html5拖拽

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  9. 每天一个JavaScript实例-canvas绘图

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

随机推荐

  1. Java知多少(87)选择框和单选按钮

    选择框.单选框和单选按钮都是选择组件,选择组件有两种状态,一种是选中(on),另一种是未选中(off),它们提供一种简单的 “on/off”选择功能,让用户在一组选择项目中作选择. 选择框 选择框(J ...

  2. rqalpha探究 2 接入mod

    程序的目的是尽可能用mod扩展功能,所以接下来需要接入mod模块

  3. Java8学习笔记(八)--方法引入的补充

    在Java8学习笔记(三)--方法引入中,简要总结了方法引入时的使用规则,但不够完善.这里补充下几种情况: 从形参到实例方法的实参 示例 public class Example { static L ...

  4. win7怎么打开加锁文件夹

    在windows 7下,C:\Documents and Settings文件夹是默认锁定的,很多时候要进入进行解除锁定,根据本人实践的经历略作介绍. 1.打计算机,进入c盘文件夹,2.分别点击“组织 ...

  5. Nginx对同一IP限速限流

    limit_conn_zone是限制同一个IP的连接数,而一旦连接建立以后,客户端会通过这连接发送多次请求,那么limit_req_zone就是对请求的频率和速度进行限制. limit_conn_zo ...

  6. 关于H5页面在iPhoneX适配(转)

    ​1.  iPhoneX的介绍 屏幕尺寸 我们熟知的iPhone系列开发尺寸概要如下: △ iPhone各机型的开发尺寸 转化成我们熟知的像素尺寸: △ 每个机型的多维度尺寸 倍图其实就是像素尺寸和开 ...

  7. [原]Jenkins(十一)---jenkins使用管理员admin创建用户和分配权限

    /** * lihaibo * 文章内容都是根据自己工作情况实践得出. * 版权声明:本博客欢迎转发,但请保留原作者信息! http://www.cnblogs.com/horizonli/p/533 ...

  8. objective-c启用ARC时的内存管理 (循环引用)

    PDF版下载:http://download.csdn.net/detail/cuibo1123/7443125          在Objective-C中,内存的引用计数一直是一个让人比较头疼的问 ...

  9. java注解和反射学习

    spring框架很多地方都应用了注解,如@controller,所以要学会自定义注解及注解处理器. Class<?> cl=Class.froName(className) //通过类名加 ...

  10. react-snippets

    rcjc class componentName extends Component { render() { return ( <div> </div> ); } } con ...