爱易网页
JavaSript
javascript 学习_一
日期:2014-05-16 浏览次数:20422 次
javascript 学习__1
js是一种基于原型的语言,建立新类的时候,是新建一个包含指定的属性和方法的构造函数,而并不是不是新建立一个类类型。this关键字用于指代那个类生成的实例。可以这样理解this对象,它本质上就是一个包含成员入口的属性列表。 类本质上就是一个function,用new操作符出来的就是一个对象object function本身就带有一个object--prototype,每个function都有且只有一个prototype,当然prototype是可以形成链的。 例如: function A() { this.value1 = 1; this.func1 = function(){}; A.value2 = 2; A.func2 = function(){}; } value1和func1是属于new出来的对象的属性。 value2和func2是属于function A的属性。 在prototype上定义的属性和方法被类(function)和对象(object)共享。 this也是一个类,它为类A的实例x所拥有,而不为类A所拥有。 值得注意的是类A的属性value2和方法func2,在它本身定义的时候并不存在,也就是说在,语句“var x= new A;”之前不存在,直到语句“var x= new A;”之后才存在。也就是说,类A自身的属性和方法直到它被第一次实例化之后才有意义。但是A.prototype的属性和方法与此不同,它自从定义的时候就存在了,与实例化无关。类中静态属性和方法的定义: 目前被认可的有两种方法:(同样用上例作说明) 1.采用上述A.value定义静态属性,采用A.func定义静态方法 2.采用上述A.prototype.value定义静态属性,采用A.prototype.func定义静态方法 采用方法1和2在一般情况下是一样的,但是还是有一定的差别,举例说明如下: (1).类A的实例x并没有属性value2和方法func2,也就是说x.value2和x.func2都不存在,只存在A.value2和A.func2。 (2). x.value3改变的时候 A.prototype.value3不改变,但是 A.prototype.value3改变的时候 x.value3将随之改变
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。