再践javascript对象原型属性构造函数扩展j精.docx

上传人:b****1 文档编号:422612 上传时间:2022-10-10 格式:DOCX 页数:11 大小:20.39KB
下载 相关 举报
再践javascript对象原型属性构造函数扩展j精.docx_第1页
第1页 / 共11页
再践javascript对象原型属性构造函数扩展j精.docx_第2页
第2页 / 共11页
再践javascript对象原型属性构造函数扩展j精.docx_第3页
第3页 / 共11页
再践javascript对象原型属性构造函数扩展j精.docx_第4页
第4页 / 共11页
再践javascript对象原型属性构造函数扩展j精.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

再践javascript对象原型属性构造函数扩展j精.docx

《再践javascript对象原型属性构造函数扩展j精.docx》由会员分享,可在线阅读,更多相关《再践javascript对象原型属性构造函数扩展j精.docx(11页珍藏版)》请在冰豆网上搜索。

再践javascript对象原型属性构造函数扩展j精.docx

再践javascript对象原型属性构造函数扩展j精

再践javascript对象、原型、属性、构造函数、扩展、json

javascript中的对象有三种1

1、内部对象1

2、基于类的对象1

3、基于原型的对象1

javascript内置对象上添加其它属性或者方法1

C#定义:

构造函数2

javascript定义:

构造函数2

函数定义2

Function(构造函数3

函数直接量3

Function(构造函数和函数直接量差别4

function定义构造函数4

javascript对象{}5

javascrip原型(prototype与属性(property5

this.特权(属性和方法)、prototype.公有(属性和方法)、function.(属性和方法)6

js面向对象设计用{}好还是function({}好(构造函数7

javascript解析JSON7

JSON建构于两种结构:

7

JSON具有以下这些形式:

7

JSON文件格式和JSON文件注释7

javascript和json.js一起使用的细节7

对象{}与json转换示例代码json.js:

8

示例使用JSON.parse将字符串转为json对象8

示例使用JSON.stringify将json对象转为字符串8

javascript中的对象有三种

1、内部对象

如Array、Boolean、Data、Math、Number、Object、RegExp、String对象等

这些对象系统给我们提供了各自的属性与方法供调用。

2、基于类的对象

用类的方式实现对象的引用,这些类需要我们自己定义

3、基于原型的对象

提供有关如何使用javascript基于原型的对象模型的指南,并且提供指向特定信息的链接,这些信息描述基于原型的对象的自定义构造函数和继承。

/*

javascript内置对象上添加其它属性或者方法

*/

String.prototype.good=function({//自定义方法

return"追加good方法";

}

String.prototype.bad="追加bad属性";//自定义属性

varstr="";//定义一个字符串实例str,调用String对象追加的属性和方法

document.write(str.good(;

document.write(str.bad;

自定义对象

语法规则

1、对象创建方式

1)、对象初始化器方式

格式:

objectName={property1:

value1,property2:

value2,…,propertyN:

valueN}

property是对象的属性

value则是对象的值,值可以是字符串、数字或对象三者之一

示例代码:

varuser={name:

"Sn",age:

25};

2)、构造函数方式

编写一个构造函数,并通过new方式来创建对象,构造函数本可以带有构造参数

示例代码:

functionf(name,age{

this.name=name;

this.age=age;

}

varuse=newf(;

C#定义:

构造函数

1、构造函数的命名必须和类名完全相同;

2、构造函数的功能主要用于在类的对象创建时定义初始化的状态,它没有返回值,也不能用void来修饰;

3、构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用,一般方法在程序执行到它的时候被调用;

4、当定义一个类的时候,通常情况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略;

5、当一个类只定义了私有(private)的构造函数,将无法通过new关键字来创建其对象(不可访问,因为它受保护级别限制);

当一个类没有定义任何构造函数,C#编译器会为其自动生成一个默认的无参的构造函数;除非类是static类;

javascript定义:

构造函数

javascript中的构造函数是允许有返回值的,但通常不设置返回值

如果一个构造函数有一个返回值,则返回的对象成为new表达式的值。

在此情况下,作为this的对象将会被抛弃。

构造函数作用:

使自己的对象多次复制,同时实例根据设置的访问等级可以访问其内部的属性和方法

当对象被实例化后,构造函数会立即执行它所包含的任何代码

/*

函数定义

函数是由这样的方式进行声明的:

关键字function、函数名、一组参数,以及置于括号中的待执行代码。

函数的构造语法有这三种:

1.functionfunctionName(arg0,arg1,...argN{statements}//function语句

2.varfunction_name=newFunction(arg1,arg2,...,argN,function_body;//Function(构造函数

3.varfunc=function(arg0,arg1,...argN{statements};//函数直接量

示例代码:

*/

functionfn(x{returnx*x};//1.function语句

varFnc=newFunction("x","returnx*x;";//2.Function(构造函数

varfact=function(x{returnx*x;};//3.函数直接量、匿名函数、表达式

document.write(fn(10;//显示100

document.write(Fnc(10;//显示100

document.write(fact(10;//显示100

/*

注:

如果函数无明确的返回值,或调用了没有参数的return语句,那么它真正返回的值是undefined。

*/

/*

Function(构造函数

函数实际上是功能完整的对象。

Function类可以表示开发者定义的任何函数。

用Function类直接创建函数的语法如下:

varfunction_name=newfunction(arg1,arg2,...,argN,function_body

在上面的形式中,每个arg都是一个参数,最后一个参数是函数主体(要执行的代码)。

这些参数必须是字符串。

示例代码:

*/

varf=newFunction("x","x*x;";

document.write(f(10;//显示:

100

document.write(f;//显示:

functionanonymous(x{returnx*x;}匿名(anonymous

document.write(f(10;//undefined

document.write(f;//显示:

functionanonymous(x{x*x;}

/*

注意:

尽管可以使用Function构造函数创建函数,但最好不要使用它,因为用它定义函数比用传统方式要慢得多。

不过,所有函数都应看作Function类的实例。

如果你定义的函数没有参数,那么可以只需给构造函数传递一个字符串(即函数的主体)即可。

注意:

传递给构造函数Function(的参数中没有一个用于说明它要创建的函数名。

用Function(构造函数创建的未命名函数有时被称为“匿名函数”。

Function(函数允许我们动态地建立和编译一个函数,它不会将我们限制在function语句预编译的函数体中。

*/

/*

函数直接量

函数直接量是一个表达式,它可以定义匿名函数。

函数直接量的语法和function语句非常相似,只不过它被用作表达式,而不是用作语句,而且也无需指定函数名。

语法:

varfunc=function(arg0,arg1,...argN{statements};//函数直接量

虽然函数直接量创建的是未命名函数,但是它的语法也规定它可以指定函数名,这在编写调用自身的递归函数时非常有用。

示例代码:

*/

varf=functionfact(x{

if(x<=1

return1;

else

returnx*fact(x-1;

};

document.write(f(10;//显示:

随机数,因为返回值小于0

/*

注:

它并没有真正创建一个名为fact(函数,只是允许函数体用这个名字来引用自身。

函数名并没有什么实质意义,它不过是用来保存函数的变量名字,这个变量只是保存的位置可能不一样而已,可以将这个函数赋给其他变量,它仍然会以相同方式起作用。

*/

/*

Function(构造函数和函数直接量差别

Function(构造函数和函数直接量之间的差别有一点就是:

使用构造函数Function(创建的函数不使用词法作用域,相反的,它们总是被顶级函数来编译,如:

示例代码:

*/

vary="global";

functionconstructFunction({

vary="local";

returnnewFunction("returny;";//Function(构造函数,不使用局部作用域

}

functionconstFunction({

vary="local";

varf=function({//函数直接量,使用局部作用域

returny;

};

returnf;

}

document.write(constructFunction((;//显示global,因为Function(构造函数返回的函数并不使用局部作用域

document.write(constFunction((;//显示lobal,因为函数直接量返回的函数并使用局部作用域

/*

注:

它并没有真正创建一个名为fact(函数,只是允许函数体用这个名字来引用自身。

函数名并没有什么实质意义,它不过是用来保存函数的变量名字,这个变量只是保存的位置可能不一样而已,可以将这个函数赋给其他变量,它仍然会以相同方式起作用。

*/

/*

javascript中的构造函数是允许有返回值的,但通常不设置返回值

如果一个构造函数有一个返回值,则返回的对象成为new表达式的值。

在此情况下,作为this的对象将会被抛弃。

*/

function定义构造函数

functionf(x{

this.x=x;

}

document.write(f(10;//显示:

10

varo=newf(10;

document.write(o.x;//显示:

10

/*

javascript对象{}

//定义对象语法

varobject={};

//对象内的属性语法(属性名(property与属性值(value是成对出现的

object.property=value;

//对象内的函数语法(函数名(func与函数内容是成对出现的

object.func=function({...;};

示例代码:

*/

varobject={};

object.property='value';

object.func=function({return'fn'};

document.write(object.property;//显示:

value

document.write(object.constructor;//显示:

functionObject({[nat

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 从业资格考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1