function Shape(type){
this.type = type || "rect";
this.calc = function(){
return "calc, "+this.type;
}
}
var triangle = new Shape("triangle");
print(triangle.calc());
var circle = new Shape("circle");
print(circle.calc());
//运行结果如下:
calc, triangle
calc, circle

在JavaScript中,通过new操作符来作用与一个函数,实质上会发生这样的动作:
首先,创建一个空对象,然后,用函数的apply方法,将这个空对象传入作为apply的第一个参数,及上下文参数。这样函数内部的this将会被这个空的对象所替代:

var triangle = new Shape("triangle");
//上一句相当于下面的代码
var triangle = {};
Shape.apply(triangle, ["triangle"]);

最新文章

  1. Object.create
  2. QIBO CMS SQL Injection Via Variable Uninitialization In \member\special.php
  3. javascript表单操作方法
  4. Objective-C语言的面向对象特性
  5. 【转】Maven实战(三)---插件动态打包
  6. 从Eclipse里导出Android程序到手机里
  7. Linux(Centos、Debian)之安装Java JDK及注意事项(转)
  8. 关于取数组地址的识记(&s+1,s+1,&s[0]+1)
  9. [STOI2014]舞伴(dp)
  10. MYSQL 关闭服务的过程
  11. NTFS权限设置时卡死
  12. 【百度地图API】如何利用自己的数据制作社交地图?只显示可视区域内的标注
  13. 判断数据是否服从某一分布(二)——简单易用fitdistrplus包
  14. 第六次作业:Alpha阶段综合报告(Java-Team)
  15. 条件随机场CRF(二) 前向后向算法评估标记序列概率
  16. python常见报错类型
  17. Java9之HashMap与ConcurrentHashMap
  18. io重定向打开关闭 Eclipse中c开发printf无法输出解决办法
  19. Java 9 中,我们可以在匿名类中使用 <> 操作符
  20. js中的prototype原型解析

热门文章

  1. springmvc:frameServletBean
  2. iOS 推送证书生成pem
  3. 适应各浏览器图片裁剪无刷新上传jQuery插件(转)
  4. PostgreSQL数据库服务端监听设置及客户端连接方法教程
  5. C/C++中static关键字作用总结
  6. html页面的绝对路径和相对路径
  7. Android 高手进阶之自定义View,自定义属性(带进度的圆形进度条)
  8. Mybatis 的分页插件PageHelper-4.1.1的使用
  9. CSS3_概述、发展史、模块介绍、与浏览器之间的关系
  10. date 笔记