博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2011年10月12日

摘要: 按照javascript语言精粹中所说,如果在一个函数前面带上new来调用该函数,那么将创建一个隐藏连接到该函数的prototype成员的新对象,同时this将被绑定到那个新对象上。这个话很抽象,我想用实例来让自己加深理解。1.如果就一个函数,没有返回值,没有prototype成员,然后使用new,会是什么结果呢?如果一个函数没有返回值,那么如果不使用new来创建变量,那么该变量的值为undefined.如果用了new,那么就是Object.说明一个函数的默认的Prototype是Object.function Test1(str) { this.a = str;}var myTest ... 阅读全文

posted @ 2011-10-12 17:39 ritazhou 阅读(17315) 评论(9) 推荐(9) 编辑

2011年7月21日

摘要: 原型 prototypal基于原型的继承相比基于类得继承在概念上更为简单:一个新对象可以继承一个旧对象的属性。if(typeof Object.beget !== 'function'){ Object.beget = function(o) { var F= function(){}; F.prototype = o; return new F(); };}var myMammal = { name: 'Herb the Mammal', get_name: function(){return this.name;}, says: function(){ret 阅读全文

posted @ 2011-07-21 14:03 ritazhou 阅读(257) 评论(0) 推荐(0) 编辑

2011年7月20日

摘要: 伪类//构造器调用模式var Mammal = function (name){ this.name = name;};Mammal.prototype.get_name = function(){ return this.name;};Mammal.prototype.says = function (){ return this.saying || '';};var Cat = function(name){ this.name = name; this.saying = 'meow';};Cat.prototype = new Mammal();Cat.p 阅读全文

posted @ 2011-07-20 17:43 ritazhou 阅读(289) 评论(0) 推荐(0) 编辑

摘要: 参数 arguments当一个函数被调用时候,会得到一个argments数组的参数。通过它函数可以访问所有它被调用时传递给他的参数列表,包括没有在函数定义时定义的多余参数。这个arguments不是真正的数组,只有一个length的属性,并且能够通过index遍历。返回 returnreturn语句用于返回。如果没有指定返回值,则返回undefined。如果函数用new方式来调用,且返回值不是对象,那么返回this(该新对象)。异常 Exceptionvar add = function (a, b){ if(typeof a != 'number' || typeof b ! 阅读全文

posted @ 2011-07-20 15:50 ritazhou 阅读(319) 评论(0) 推荐(0) 编辑

2011年7月8日

摘要: 函数对象 Function Object函数就是对象。对象字面量产生的对象链接到Object.prototype。函数对象链接到Function.prototype。每个函数在创建时附有两个附件的隐藏属性:函数的上下文和实现函数行为的代码。函数字面量 Function Literal函数对象可以通过函数字面量来创建。var add = function(a, b){return a+b;};调用 Invocation除了声明时定义的形式参数,每个函数接收两个附加的参数:this 和arguments。this在面向对象编程中非常重要,它的值取决于调用的模式。在JS中,一共有四种调用模式,这些模 阅读全文

posted @ 2011-07-08 18:28 ritazhou 阅读(673) 评论(3) 推荐(0) 编辑

2011年7月4日

摘要: Common Intermediate Language(CIL) or(MSIL)C#编译器只是把C#源代码转换成CIL。 Virtual Execution System(VES)VES也被称为运行时,它根据需要来编译CIL,编译的过程为即使编译或者JIT编译(just-in-time compilation).Managed Code 假如代码在'运行时'这样的一个代理的上下文中执行,这些代码就叫托管代码(managed code)。Common Language Infrastructure(CLI)1、VES (Runtime)2、CIL3、CTS (common t 阅读全文

posted @ 2011-07-04 16:13 ritazhou 阅读(167) 评论(0) 推荐(0) 编辑

摘要: c#是一种区分大小写的语言。采用命令行CSC.EXE 编译程序。IDisposable模式C#中的昂贵资源比如打开文件的句柄,连接数据库等,都需要通过手工调用IDisposable.Dispose()去释放。并且using语句可以帮助用户及时调用Dispose方法。等于在try..catch块中finally中调用该方法。 public class Demo : IDisposable { private bool disposed = false; #region IDisposable Members public void Dispose() { //the value is true 阅读全文

posted @ 2011-07-04 13:44 ritazhou 阅读(180) 评论(0) 推荐(0) 编辑

2011年6月29日

摘要: Javascript的简单类型包括数字、字符串、布尔值、null值、undefined值。其他的值都是对象。对象是可变的键控集合。数组、函数、正则表达式都是对象。对象是属性的容器,属性都是名字和值对。名字可以是包括空字符串在内的全部字符串。值可以是除了undefined之外的任何值。javascript中的对象是无类别(class-free)的。javascript包括一个原型链特性,允许对象继承另一个对象的属性。正确的使用能减少对象初始化的时间和内存损耗。对象字面量:var empty_object={};var stoog ={"first-name":"Je 阅读全文

posted @ 2011-06-29 17:34 ritazhou 阅读(495) 评论(0) 推荐(0) 编辑

摘要: switch, while, for 和do语句允许有一个可选的前置label,配合break来使用。ex:Outer:for (i = 0; i < 5; i++){Inner:for (j = 0; j < 5; j++){ break Outer;}j=100}alert(j)以下的值被if语句判断为falsy.false; null;undefined;'';0;NaN字符串"false"为true.for(variable in object){}object中的一个属性名称字符串赋给了variable。通常需要检测该属性名是否为对象的 阅读全文

posted @ 2011-06-29 16:41 ritazhou 阅读(193) 评论(0) 推荐(0) 编辑

2011年6月15日

摘要: 动态编程动态对象在4.0引入,先跳过。 阅读全文

posted @ 2011-06-15 17:28 ritazhou 阅读(155) 评论(0) 推荐(0) 编辑