2009-07 归档
共 43 篇
先编写一个类Person: 下边声明两个实例,并输出属性: 是不是有些奇怪怎么Person.Age的值也是18,那类中的Age到底是实例属性还是类属性?我们再输出各实例成员信息看看: 可见类中的Age应是类属性,而获取实例属性时实际上是获取类属性的值。 再做个测试: 测试说明:仅当对实例属性赋过值后,实例属性才真正存在,未对实例属性赋值前,获取实例属性值时将获取同名类属性的值! 下边对类属性赋值,再看下结果: person1.Age为实例属性值,person2.Age和Person.Age均为类属性的值。 再来看一个例子: 从测试结果可知: 在类中声明的变量皆为类属性,只有给self设置的属性才为实例属性。当获取一个实例属性值时,若在类中有定义该实例属性,则返回实例属性值;若在类中没有定义该实例属性,则返回同名类属性值,若没有同名类属性,则报错。…
👤 博主
📅 2009-07-26
📂 Web编程
👁 5671
👍 0
🔄 来源:本站原创
阅读全文 →
下边是一个简单的Python类: 调用示例: 说明: ·每个实例方法的第一个形参都必须预留给实例对象,但在调用时可省略此参数; ·__init__是Python特殊的方法,用来初始化类实例,类似的方法还有__del__、__getitem__等; 类继承
👤 博主
📅 2009-07-26
📂 Web编程
👁 4184
👍 0
🔄 来源:本站原创
阅读全文 →
下边是一个简单的Python函数定义: 说明:注意Python代码块是通过代码缩进区分的,缩进在Python非常重要! ·普通调用方式,形参和实参位置一一对应: ·使用关键参数,形参和实参位置可不需对应: Python函数定义的时候还可以为参数指定默认值,带默认值的形参在调用时可以省略: 说明:带默认值的形参必须放在没有默认值的形参后面! Python函数形参前边还可以使用*和**前缀: 可以看出: *允许传任意多个实参,这些实参最终被合并成一个元组进行处理; **也允许传任意多个实参,这些实参在函数中当作字典来处理;
👤 博主
📅 2009-07-26
📂 Web编程
👁 4214
👍 0
🔄 来源:本站原创
阅读全文 →
IETester可以在同一台机子上运行IE5.5、IE6、IE7、IE8,但仅现能XP和Vista系统上运行,目前最新版本为v0.3.4。 官方站点:http://www.my-debugbar.com/wiki/IETester/HomePage 下载地址:http://www.my-debugbar.com/ietester/install-ietester-v0.3.4.exe
👤 博主
📅 2009-07-24
📂 操作系统
👁 4263
👍 0
🔄 来源:本站原创
阅读全文 →
给构造函数添加一个方法我们通常这么做: 也有人是直接将一个自定义对象赋值给prototype: 暂时没发现有什么使用上的问题,但还是发现了一点不同:我们知道,原型对象默认有一个属性constructor,他指向构造函数本身,测试一下: 结果显示: function Class() { this.Name = "Class"; } 结果显示: function Object() { } 这和Object.prototype.constructor的结果是一样的,也就是说:将自定义对象赋值给prototype后,改变了原型对象constructor属性的值,他不再是表示prototype所对应的构造函数,其值是超类(Object)的构造函数。
👤 博主
📅 2009-07-24
📂 脚本语言
👁 5632
👍 0
🔄 来源:本站原创
阅读全文 →
"构造函数prototype属性的值是一个对象,该对象即为构造函数的原型对象。添加给这个原型对象的任何属性,都会成为被构造函数所初始化的对象的属性。" 这两句话高度概括了JavaScript构造函数的原型对象,我们来理解下: ·第一句说明了原型对象其实就是类的一个属性,不同于实例属性,不管创建了该类的多少个实例,他们都共享该属性; ·第二句说明了一个特性:构造函数实例化对象将继承原型对象的属性; 所以,原型对象是放置方法和其他不变属性的理想地方!
👤 博主
📅 2009-07-24
📂 脚本语言
👁 4596
👍 0
🔄 来源:本站原创
阅读全文 →
问题的提出 首先看一个例子: 运行结果是什么呢? 上面的问题, 我相信会有很多人会认为是: laruence eve 因为会以为在echo中, 第一次alert的时候, 会取到全局变量name的值, 而第二次值被局部变量name覆盖, 所以第二次alert是'eve'. 而age属性没有定义, 所以脚本会出错. 但其实, 运行结果应该是: undefined eve 为什么呢? JavaScript的作用域链 首先让让我们来看看Javasript(简称JS, 不完全代表JScript)的作用域的原理: JS权威指南中有一句很精辟的描述: "JavaScript中的函数运行在它们被定义的作用域里,而不是它们被执行的作用域里." …
👤 博主
📅 2009-07-23
📂 脚本语言
👁 4795
👍 0
🔄 来源:风雪之隅
阅读全文 →
1.实现类"继承"(将一个类的成员复制给一个对象) 调用apply时,o对象就是Rectangle函数中this的值,因而实现了属性的复制。 2.给类设置初始化函数
👤 博主
📅 2009-07-22
📂 脚本语言
👁 4279
👍 0
🔄 来源:本站原创
阅读全文 →
本文结合 ECMA 262 规范详解了闭包的内部工作机制,让 JavaScript 编程人员对闭包的理解从"嵌套的函数"深入到"标识符解析、执行环境和作用域链"等等 JavaScript 对象背后的运行机制当中,真正领会到闭包的实质。 简介 闭包是 ECMAScript (JavaScript)最强大的特性之一,但用好闭包的前提是必须理解闭包。闭包的创建相对容易,人们甚至会在不经意间创建闭包,但这些无意创建的闭包却存在潜在的危害,尤其是在比较常见的浏览器环境下。如果想要扬长避短地使用闭包这一特性,则必须了解它们的工作机制。而闭包工作机制的实现很大程度上有赖于标识符(或者说对象属性)解析过程中作用域的角色。…
👤 博主
📅 2009-07-22
📂 脚本语言
👁 4400
👍 0
🔄 来源:为之漫笔
阅读全文 →
1.调用对象 当函数被调用的时候,在作用域链顶部创建一个他的调用对象,函数的参数、变量等在调用对象中都有定义,调用对象的下一层为全局对象。当检测到不再有对函数的引用时,调用对象即被删除。在上边例子中,fn(0)调用fn时,创建了fn的调用对象,其里面有对i的定义。 同一个函数多次调用时,将会创建多个调用对象,举例: 2.闭包 执行结果: 1 2 3 说明:当调用f时,创建了f的调用对象,里边包含有i和g的定义,fn中包含了对g引用,所以,当给fn赋值之后,虽然后面的代码中不再有对f的引用,但f的调用对象仍不会被删除(若删除了调用对象,fn将无法使用)。当调用fn时,作用域链上就有三个对象:fn的调用对象、f的调用对象和全局对象,由于f的调用对象未被删除,那么他的属性i对于fn而言就相当于是一个全局变量,所以多次调用fn时,i的值将递增。…
👤 博主
📅 2009-07-22
📂 脚本语言
👁 4729
👍 0
🔄 来源:本站原创
阅读全文 →