传统 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 Utils工具类大全(转)

    源码和jar见:https://github.com/evil0ps/utils #Java Utils --- 封装了一些常用Java操作方法,便于重复开发利用. 另外希望身为Java牛牛的你们一起 ...

  2. 导出表结构sql语句

    -- C:/dba必需是已经存在的目录 -- create or replace directory UTL_DIR as 'C:\dba'; --用sys用户登录给要访问的用户指定访问目录的权限gr ...

  3. 硬件信息 dmidecode dmesg lsdev lshw haparm lsusb

    dmidecode 显示从BIOS中获取的硬件信息 dmesg 检测到的硬件和启动的消息 lsdev 显示关于安装硬件信息 cat /proc/devices 显示当前核心配置的设备 haparm - ...

  4. android 编程之 PopupWindow 窗口的弹出

    PopupWindow 是一个可以显示在当前 Activity 之上的浮动容器,PopupWindow 弹出的位置是能够改变的,按照有无偏移量,可以分为无偏移和有偏移两种:按照参照对象的不同又可以分为 ...

  5. [hive] hiveql 基础操作

    1. 显示当前的数据库信息 直接修改hive.site.xml ,永久显示 2. 建表,模糊显示表信息 drop  table   表名称: --删除表 show tables ;--显示所有表 sh ...

  6. [JS] ECMAScript 6 - Class : compare with c#

    Ref: Class 的基本语法 Ref: Class 的基本继承 许多面向对象的语言都有修饰器(Decorator)函数,用来修改类的行为.目前,有一个提案将这项功能,引入了 ECMAScript. ...

  7. ubuntu安装图形界面

    命令行模式的Ubuntu16.04安装图形界面 apt-get update sudo apt-get install xinit sudo apt-get install gdm sudo apt- ...

  8. day_5.27py

    生成器:send()  next() send 和next都可以把生成器向下走,但是send可以传入个参数 ''' 周末继续py 下周回学校过郭星辰生日,还得回来再复查一下 2018-5-27 16: ...

  9. 写写我的硕士三年【zz】

    昨天我们组的10bit-40M ADC测出来了,自己终于能松口气,可以无牵无挂的毕业了.晚上老板bg全组毕业生,喝了很多,我对老板说:"这3年在组里,我是把它当作事业来做的!"是的 ...

  10. 快速构建springmvc+spring+swagger2环境

    快速构建springmvc+spring+swagger2环境 开发工具:Intellij idea               jdk: 1.8 开发步骤: 1.创建maven工程,如图建立工程结构 ...