热门搜索 :
汽车文化
您的当前位置:首页正文

JavaScript中字面量与函数的基本使用知识_基础知识

2023-12-06 来源:学车网

JavaScript 字面量在编程语言中,一个字面量是一个常量,如 3.14。数字(Number)字面量 可以是整数或者是小数,或者是科学计数(e)。

字符串(String)字面量 可以使用单引号或双引号 be written with double or single quotes:

表达式字面量 用于计算:

数组(Array)字面量 定义一个数组:

对象(Object)字面量 定义一个对象:

函数(Function)字面量 定义一个函数:

JavaScript 函数定义JavaScript 使用关键字 function 定义函数。函数可以通过声明定义,也可以是一个表达式。函数声明在之前的教程中,你已经了解了函数声明的语法 :

函数声明后不会立即执行,会在我们需要的时候调用到。实例

Note 分号是用来分隔可执行JavaScript语句。 由于函数声明不是一个可执行语句,所以不以分号结束。

函数表达式JavaScript 函数可以通过一个表达式定义。函数表达式可以存储在变量中:实例

在函数表达式存储在变量后,变量也可作为一个函数使用:实例

以上函数实际上是一个 匿名函数 (函数没有名称)。函数存储在变量中,不需要函数名称,通常通过变量名来调用。Note 上述函数以分号结尾,因为它是一个执行语句。

Function() 构造函数在以上实例中,我们了解到函数通过关键字 function 定义。函数同样可以通过内置的 JavaScript 函数构造器(Function())定义。实例

实际上,你不必使用构造函数。上面实例可以写成:实例

Note 在 JavaScript 中,很多时候,你需要避免使用 new 关键字。

函数提升(Hoisting)在之前的教程中我们已经了解了 "hoisting(提升)"。提升(Hoisting)是 JavaScript 默认将当前作用域提升到前面去的的行为。提升(Hoisting)应用在变量的声明与函数的声明。因此,函数可以在声明之前调用:

使用表达式定义函数时无法提升。自调用函数函数表达式可以 "自调用"。自调用表达式会自动调用。如果表达式后面紧跟 () ,则会自动调用。Y不能自调用声明的函数。通过添加括号,来说明它是一个函数表达式:实例

以上函数实际上是一个 匿名自我调用的函数 (没有函数名)。函数可作为一个值使用JavaScript 函数作为一个值使用:实例

JavaScript 函数可作为表达式使用:实例

函数是对象在 JavaScript 中使用 typeof 操作符判断函数类型将返回 "function" 。但,JavaScript 函数描述为一个对象更加准确。JavaScript 函数有 属性 和 方法。arguments.length 属性返回函数调用过程接收到的参数个数:实例

toString() 方法将函数作为一个字符串返回:实例

 

小编还为您整理了以下内容,可能对您也有帮助:

javascript里面的字面量是什么意思啊?

字面量表示如何表达这个值,一般除去表达式,给变量赋值时,等号右边都可以认为是字面量。

字面量分为字符串字面量(string literal )、数组字面量(array literal)和对象字面量(object literal),另外还有函数字面量(function literal)。

示例:

var test="hello world!";

"hello world!"就是字符串字面量,test是变量名。

javascript创建对象的几种模式介绍_基础知识

在js中有几种模式可以创建对象,通过对象操作所包含的属性与方法。

一般来说,构造函数名称的第一个字母为大写字母,非构造函数名称的第一个字母为小写字母,当然,构造函数与一般函数唯一的区别只是调用的方式不同而已,所以任何函数只要通过new来调用,那它就可以作为构造函数,若不通过new来调用,则与一般函数一样。

谈谈我对这几种模式的理解:

工厂模式:创建一个一般函数,在函数里创建一个Object对象,为这个对象增添属性与方法,同时赋予其值,最后返回对象。无法识别对象类型。

构造函数模式:创建构造函数,使用this来赋值,每当创建一个实例时,方法都被创建一次,而每个方法都执行相同的命令,这就多余了。这个缺点可以通过将方法放到全局环境中,但是,这样就没有封装性了。不过可以通过原型模式解决。

原型模式:每个函数都有一个prototype属性,该属性是一个指针,指向一个对象,该对象包含其函数创建的所有实例共享的属性与方法。

原型对象,构造函数以及实例之间的关系如下图:

图解:1:构造函数以及由构造函数创建的实例,它们的prototype属性都指向构造函数的原型对象。

2:构造函数的原型对象具有constructor属性,该属性指向构造函数。

3:构造函数的原型对象所包含的所有属性与方法可以被由构造函数所创建的所有实例共享。

使用对象字面量重写原型对象后,constructor则指向object构造函数,若需要其指向另一构造函数,则需修改原型对象的constructor属性的值,比如:constructor:Person,这样Person的原型对象即使被重写,原型对象的constructor仍指向Person构造函数。

当先创建实例时:若是直接添加属性或方法,实例可以访问。

若是重写原型对象,则构造函数的prototype指向新的原型对象,而之前创建的实例的prototype仍指向最初的原型对象,所以实例访问不到新的原型对象的新属性或和新方法。

原型对象包含的是共享的属性与方法,那么每个实例都拥有这些信息,这样实例之间就没有什么不同了,而且还不可以传参数,这不是我们所想要的。每个实例之间有共同的信息,又有不同的信息,所以我们可以组合使用构造函数模式与原型模式。

构造函数模式与原型模式的组合使用:

态原型模式:将的构造函数与其原型对象结合在一起,在构造函数里初始化原型,为其添加方法。

若该方法不存在,则将其添加到原型对象上,只在初始化原型时才执行,而且只执行一次。

寄生构造函数模式:与工厂模式类似,区别为:寄生构造函数模式为构造函数,通过new来创建实例。

稳妥构造函数模式:没有公共的属性,其方法不引用this的对象。创建实例时不使用new。只能通过方法访问属性(即传入的数据)。

JavaScript教程--从入门到精通(3)

JavaScript程序构成

JavaScript脚本语言的基本构成是由控制语句 函数 对象 方法 属性等 来实现编程的

一 程序控制流  在任何一种语言中 程序控制流是必须的 它能使得整个程序减小混乱 使之顺利按其一定的方式执行 下面是JavaScript常用的程序控制流结构及语句:1 if条件语句 基本格式if(表述式)语句段1 else语句段2  功能 若表达式为true 则执行语句段1 否则执行语句段2  说明 if else 语句是JavaScript中最基本的控制语句 通过它可以改变语句的执行顺序 表达式中必须使用关系语句 来实现判断 它是作为一个布尔值来估算的 它将零和非零的数分别转化成false和true 若if后的语句有多行 则必须使用花括号将其括起来  if语句的嵌套if(布尔值)语句1 else(布尔值)语句2 else if(布尔值)语句3 ……else 语句4  在这种情况下 每一级的布尔表述式都会被计算 若为真 则执行其相应的语句 否则执行else后的语句  2 For循环语句 基本格式for(初始化 条件 增量)语句集  功能 实现条件循环 当条件成立时 执行语句集 否则跳出循环体  说明 初始化参数告诉循环的开始位置 必须赋予变量的初值 条件 是用于判别循环停止时的条件 若条件满足 则执行循环体 否则 跳出 增量 主要定义循环控制变量在每次循环时按什么方式变化 三个主要语句之间 必须使用逗号分隔  3 while循环 基本格式while(条件)语句集 该语句与For语句一样 当条件为真时 重复循环 否则退出循环  For与while语句  两种语句都是循环语句 使用For语句在处理有关数字时更易看懂 也较紧凑 而while循环对复杂的语句效果更特别

4 break和continue语句  与C++语言相同 使用break语句使得循环从For或while中跳出 continue使得跳过循环内剩余的语句而进入下一次循环

二 函数  函数为程序设计人员提供了一个丰常方便的能力 通常在进行一个复杂的程序设计时 总是根据所要完成的功能 将程序划分为一些相对独立的部分 每部分编写一个函数 从而 使各部分充分独立 任务单一 程序清晰 易懂 易读 易维护 JavaScript函数可以封装那些在程序中可能要多次用到的模块 并可作为事件驱动的结果而调用的程序 从而实现一个函数把它与事件驱动相关联 这是与其它语言不样的地方

1 JavaScript函数定义Function 函数名 (参数 变元){函数体; Return 表达式;}说明  当调用函数时 所用变量或字面量均可作为变元传递  函数由关键字Function定义  函数名 定义自己函数的名字  参数表 是传递给函数使用或操作的值 其值可以是常量 变量或其它表达式  通过指定函数名(实参)来调用一个函数  必须使用Return将值返回  函数名对大小写是敏感的  2 函数中的形式参数   在函数的定义中 我们看到函数名后有参数表 这些参数变量可能是一个或几个 那么怎样才能确定参数变量的个数呢?在JavaScript中可通过arguments Length来检查参数的个数 例 Function function_Name(exp exp exp exp )Number =function _Name arguments length;if (Number> )document wrile(exp );if (Number> )document write(exp );if(Number> )document write(exp );

三 事件驱动及事件处理1 基本概念  JavaScript是基于对象(object based)的语言 这与Java不同 Java是面向对象的语言 而基于对象的基本特征 就是采用事件驱动(event driven) 它是在用形界面的环境下 使得一切输入变化简单化 通常鼠标或热键的动作我们称之为事件(Event) 而由鼠标或热键引发的一连串程序的动作 称之为事件驱动(Event Driver) 而对事件进行处理程序或函数 我们称之为事件处理程序(Event Handler)

2 事件处理程序  在JavaScript中对象事件的处理通常由函数(Function)担任 其基本格式与函数全部一样 可以将前面所介绍的所有函数作为事件处理程序 格式如下 Function 事件处理名(参数表){事件处理语句集 ……}

3 事件驱动  JavaScript事件驱动中的事件是通过鼠标或热键的动作引发的 它主要有以下几个事件 (1)单击事件onClick  当用户单击鼠标按钮时 产生onClick事件 同时onClick指定的事件处理程序或代码将被调用执行 通常在下列基本对象中产生 button(按钮对象)checkbox(复选框)或(检查列表框)radio (单选钮)reset buttons(重要按钮)submit buttons(提交按钮)

例 可通过下列按钮激活change()文件 <Form><Input type= button Value= onClick= change() ></Form>  在onClick等号后 可以使用自己编写的函数作为事件处理程序 也可以使用JavaScript中内部的函数 还可以直接使用JavaScript的代码等 例 <Input type= button value= onclick=alert( 这是一个例子 );(2)onChange改变事件  当利用text或texturea元素输入字符值改变时发该事件 同时当在select表格项中一个选项状态改变后也会引发该事件 例 <Form><Input type= text name= Test value= Test onCharge= check( this test) ></Form>(3)选中事件onSelect  当Text或Textarea对象中的文字被加亮后 引发该事件 (4)获得焦点事件onFocus  当用户单击Text或textarea以及select对象时 产生该事件 此时该对象成为前台对象 (5)失去焦点onBlur  当text对象或textarea对象以及select对象不再拥有焦点 而退到后台时 引发该文件 他与onFocas事件是一个对应的关系 (6)载入文件onLoad  当文档载入时 产生该事件 onLoad一个作用就是在首次载入一个文档时检测cookie的值 并用一个变量为其赋值 使它可以被源代码使用 (7)卸载文件onUnload  当Web页面退出时引发onUnload事件 并可更新Cookie的状态

四 范例  范例 下例程序是一个自动装载和自动卸载的例子 即当装入HTML文档时调用loadform()函数 而退出该文档进入另一HTML文档时则首先调用unloadform()函数 确认后方可进入 <HTML><HEAD><script Language= JavaScript ><! function loadform(){alert( 这是一个自动装载例子! );}function unloadform(){alert( 这是一个卸载例子! );}// ></Script></HEAD><BODY OnLoad= loadform() OnUnload= unloadform() ><a >调用</a></BODY></HTML> 范例 这是一个获取浏览器版本号的程序 该程序首先显示一个波浪一提示信息 之后显示浏览器的版本号有关信息 <><head><script language= JavaScript ><! // >function makeArray(n){this length=nreturn this}function hexfromdec(num) {hex=new makeArray( );var hexstring= ;var shifthex= ;var temp =num;for(x= ; x>= ; x ) {hex[x]=Math round(temp /shifthex );hex[x ]=temp hex[x] * shifthex;temp =hex[x ];shifthex /= ;}for (x= ; x>= ; x ) { hexstring+=getletter(hex[x]); }return (hexstring);} function getletter(num) {if (num < ) { return num; }else {if (num == ) { return A }if (num == ) { return B }if (num == ) { return C }if (num == ) { return D }if (num == ) { return E }if (num == ) { return F }}}function rainbow(text){var color_d ;var allstring= ;for(i= ;i<text length;i=i+ ){color_d = *Math sin(i/(text length/ ));color_h =hexfromdec(color_d );allstring+= <FONT COLOR= +color_h + ff +color_h + > +text substring(i i+ )+ </FONT> ;}return allstring;} function sizefont(text){var color_d ;var allstring= ;var flag= ;for(i= j= ;i<text length;i=i+ ){if (flag== ) {j++;if (j>= ) {flag= ;}}if (flag== ) {j=j ;if (j<= ) {flag= ; }}allstring+= <FONT SIZE= + j + > + text substring(i i+ ) + </FONT> ;}return allstring;}document write( <font size= ><CENTER> )document write( <BR><BR> )document write( sizefont( 这是一个获取WEB浏览器的程序 ))document write( </CENTER></font> )document write( 浏览器名称: +navigator appName+ <br> );document write( 版本号: +navigator appVersion+ <br> );document write( 代码名字: +navigator appCodeName+ <br> );document write( 用户代理标识: +navigator userAgent);</script><body></body></>输出结果图 所示

lishixin/Article/program/Java/JSP/201311/19230

    JavaScript教程--从入门到精通(3)

    JavaScript程序构成

    JavaScript脚本语言的基本构成是由控制语句 函数 对象 方法 属性等 来实现编程的

    一 程序控制流  在任何一种语言中 程序控制流是必须的 它能使得整个程序减小混乱 使之顺利按其一定的方式执行 下面是JavaScript常用的程序控制流结构及语句:1 if条件语句 基本格式if(表述式)语句段1 else语句段2  功能 若表达式为true 则执行语句段1 否则执行语句段2  说明 if else 语句是JavaScript中最基本的控制语句 通过它可以改变语句的执行顺序 表达式中必须使用关系语句 来实现判断 它是作为一个布尔值来估算的 它将零和非零的数分别转化成false和true 若if后的语句有多行 则必须使用花括号将其括起来  if语句的嵌套if(布尔值)语句1 else(布尔值)语句2 else if(布尔值)语句3 ……else 语句4  在这种情况下 每一级的布尔表述式都会被计算 若为真 则执行其相应的语句 否则执行else后的语句  2 For循环语句 基本格式for(初始化 条件 增量)语句集  功能 实现条件循环 当条件成立时 执行语句集 否则跳出循环体  说明 初始化参数告诉循环的开始位置 必须赋予变量的初值 条件 是用于判别循环停止时的条件 若条件满足 则执行循环体 否则 跳出 增量 主要定义循环控制变量在每次循环时按什么方式变化 三个主要语句之间 必须使用逗号分隔  3 while循环 基本格式while(条件)语句集 该语句与For语句一样 当条件为真时 重复循环 否则退出循环  For与while语句  两种语句都是循环语句 使用For语句在处理有关数字时更易看懂 也较紧凑 而while循环对复杂的语句效果更特别

    4 break和continue语句  与C++语言相同 使用break语句使得循环从For或while中跳出 continue使得跳过循环内剩余的语句而进入下一次循环

    二 函数  函数为程序设计人员提供了一个丰常方便的能力 通常在进行一个复杂的程序设计时 总是根据所要完成的功能 将程序划分为一些相对独立的部分 每部分编写一个函数 从而 使各部分充分独立 任务单一 程序清晰 易懂 易读 易维护 JavaScript函数可以封装那些在程序中可能要多次用到的模块 并可作为事件驱动的结果而调用的程序 从而实现一个函数把它与事件驱动相关联 这是与其它语言不样的地方

    1 JavaScript函数定义Function 函数名 (参数 变元){函数体; Return 表达式;}说明  当调用函数时 所用变量或字面量均可作为变元传递  函数由关键字Function定义  函数名 定义自己函数的名字  参数表 是传递给函数使用或操作的值 其值可以是常量 变量或其它表达式  通过指定函数名(实参)来调用一个函数  必须使用Return将值返回  函数名对大小写是敏感的  2 函数中的形式参数   在函数的定义中 我们看到函数名后有参数表 这些参数变量可能是一个或几个 那么怎样才能确定参数变量的个数呢?在JavaScript中可通过arguments Length来检查参数的个数 例 Function function_Name(exp exp exp exp )Number =function _Name arguments length;if (Number> )document wrile(exp );if (Number> )document write(exp );if(Number> )document write(exp );

    三 事件驱动及事件处理1 基本概念  JavaScript是基于对象(object based)的语言 这与Java不同 Java是面向对象的语言 而基于对象的基本特征 就是采用事件驱动(event driven) 它是在用形界面的环境下 使得一切输入变化简单化 通常鼠标或热键的动作我们称之为事件(Event) 而由鼠标或热键引发的一连串程序的动作 称之为事件驱动(Event Driver) 而对事件进行处理程序或函数 我们称之为事件处理程序(Event Handler)

    2 事件处理程序  在JavaScript中对象事件的处理通常由函数(Function)担任 其基本格式与函数全部一样 可以将前面所介绍的所有函数作为事件处理程序 格式如下 Function 事件处理名(参数表){事件处理语句集 ……}

    3 事件驱动  JavaScript事件驱动中的事件是通过鼠标或热键的动作引发的 它主要有以下几个事件 (1)单击事件onClick  当用户单击鼠标按钮时 产生onClick事件 同时onClick指定的事件处理程序或代码将被调用执行 通常在下列基本对象中产生 button(按钮对象)checkbox(复选框)或(检查列表框)radio (单选钮)reset buttons(重要按钮)submit buttons(提交按钮)

    例 可通过下列按钮激活change()文件 <Form><Input type= button Value= onClick= change() ></Form>  在onClick等号后 可以使用自己编写的函数作为事件处理程序 也可以使用JavaScript中内部的函数 还可以直接使用JavaScript的代码等 例 <Input type= button value= onclick=alert( 这是一个例子 );(2)onChange改变事件  当利用text或texturea元素输入字符值改变时发该事件 同时当在select表格项中一个选项状态改变后也会引发该事件 例 <Form><Input type= text name= Test value= Test onCharge= check( this test) ></Form>(3)选中事件onSelect  当Text或Textarea对象中的文字被加亮后 引发该事件 (4)获得焦点事件onFocus  当用户单击Text或textarea以及select对象时 产生该事件 此时该对象成为前台对象 (5)失去焦点onBlur  当text对象或textarea对象以及select对象不再拥有焦点 而退到后台时 引发该文件 他与onFocas事件是一个对应的关系 (6)载入文件onLoad  当文档载入时 产生该事件 onLoad一个作用就是在首次载入一个文档时检测cookie的值 并用一个变量为其赋值 使它可以被源代码使用 (7)卸载文件onUnload  当Web页面退出时引发onUnload事件 并可更新Cookie的状态

    四 范例  范例 下例程序是一个自动装载和自动卸载的例子 即当装入HTML文档时调用loadform()函数 而退出该文档进入另一HTML文档时则首先调用unloadform()函数 确认后方可进入 <HTML><HEAD><script Language= JavaScript ><! function loadform(){alert( 这是一个自动装载例子! );}function unloadform(){alert( 这是一个卸载例子! );}// ></Script></HEAD><BODY OnLoad= loadform() OnUnload= unloadform() ><a >调用</a></BODY></HTML> 范例 这是一个获取浏览器版本号的程序 该程序首先显示一个波浪一提示信息 之后显示浏览器的版本号有关信息 <><head><script language= JavaScript ><! // >function makeArray(n){this length=nreturn this}function hexfromdec(num) {hex=new makeArray( );var hexstring= ;var shifthex= ;var temp =num;for(x= ; x>= ; x ) {hex[x]=Math round(temp /shifthex );hex[x ]=temp hex[x] * shifthex;temp =hex[x ];shifthex /= ;}for (x= ; x>= ; x ) { hexstring+=getletter(hex[x]); }return (hexstring);} function getletter(num) {if (num < ) { return num; }else {if (num == ) { return A }if (num == ) { return B }if (num == ) { return C }if (num == ) { return D }if (num == ) { return E }if (num == ) { return F }}}function rainbow(text){var color_d ;var allstring= ;for(i= ;i<text length;i=i+ ){color_d = *Math sin(i/(text length/ ));color_h =hexfromdec(color_d );allstring+= <FONT COLOR= +color_h + ff +color_h + > +text substring(i i+ )+ </FONT> ;}return allstring;} function sizefont(text){var color_d ;var allstring= ;var flag= ;for(i= j= ;i<text length;i=i+ ){if (flag== ) {j++;if (j>= ) {flag= ;}}if (flag== ) {j=j ;if (j<= ) {flag= ; }}allstring+= <FONT SIZE= + j + > + text substring(i i+ ) + </FONT> ;}return allstring;}document write( <font size= ><CENTER> )document write( <BR><BR> )document write( sizefont( 这是一个获取WEB浏览器的程序 ))document write( </CENTER></font> )document write( 浏览器名称: +navigator appName+ <br> );document write( 版本号: +navigator appVersion+ <br> );document write( 代码名字: +navigator appCodeName+ <br> );document write( 用户代理标识: +navigator userAgent);</script><body></body></>输出结果图 所示

    lishixin/Article/program/Java/JSP/201311/19230

      javascript字面量是什么意思???

      英文里面叫做literal,被翻译成了字面量,感觉上很奇怪,其实就是文本代码的意思。因为javascript是一门解释性语言,代码解释执行,不需要编译。不想C或者java,会被编译程二进制码和字节码。

      javascript字面量是什么意思???

      英文里面叫做literal,被翻译成了字面量,感觉上很奇怪,其实就是文本代码的意思。因为javascript是一门解释性语言,代码解释执行,不需要编译。不想C或者java,会被编译程二进制码和字节码。

      javascript的几种继承方法介绍_基础知识

      1.原型链继承:构造函数、原型和实例的关系:每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原型对象的内部指针。确认原型和实例之间的关系用instanceof。

      原型链继承缺点:字面量重写原型会中断关系,使用引用类型的原型,并且子类型还无法给超类型传递参数

      2.构造函数实现继承:又叫伪造对象或经典继承。

      构造函数实现继承缺点:借用构造函数虽然解决了原型链继承的两种问题,但没有原型,则复用无从谈起,所以需要原型链+借用构造函数模式。

      3.组合继承:使用原型链实现对原型属性和方法的继承,而通过借用构造函数来实现对实例属性的继承。这样即通过在原型上定义方法实现了函数复用,又保证每个实现都有它自己的属性。

      缺点:无论什么情况下,都会调用两次超类型构造函数,一次是在创建子类型原型的时候,另一次是在创建子类型原型的时候,另一次是在子类型构造函数内部。

      4.原型式继承:借助原型可以基于已有的对象创建新对象,同时还不必因此创建自定义类型。它要求必须有一个对象可以作为另一个对象的基础。

      ECMAScript5通过新增Object.create()方法规范化了原型式继承,这个方法接收两个参数:一个用作新对象原型的对象和(可选的)一个为新对象定义属性的对象。

      输出person2里的name值nicho

      5.寄生式继承:思路与寄生构造函数和工厂模式类似,即创建一个仅用于封装继承过程的函数,该函数在内部以某种方式来增强对象,最后再像真地是它做了所有工作一样返回对象。

      寄生组合式继承:无论什么情况下,都会调用两次超类型构造函数,一次是在创建子类型原型的时候,另一次是在创建子类型原型的时候,另一次是在子类型构造函数内部,这样子类型最终会包含超类型对象的全部实例属性,我们不得不在调用子类型构造函数时重写这些属性。因此出现了寄生组合式继承。

      6.寄生组合式继承:借用构造函数来继承属性,通过原型链的混成形式来继承方法。基本思路:不必为了指定子类型的原型而调用超类型的构造函数。本质上就是使用寄生式继承来继承超类型的原型,然后再将结果指定给子类型的原型。

      此方法优点:只调用了一次父类SuperType构造函数,并且因此避免了在SubType.prototype上面创建不必要的多余的属性。同时原型链还能保持不变,还能正常使用instanceof和isPrototypeOf();

      在javascript中使用字面量创建原型对向,和构造函数的区别

      创建对象的两种方法:

      使用字面量方法创建对象:var student = {name: "张三"}; 

      使用内置构造函数创建对象:var student = new Object();  student.name = "张三"。

      应该尽量使用字面量发创建对象,其显著优点在于它只需要输入更少的字符,除此之外,还有几点原因:

        选择字面量法创建对象强调该对象仅是一个可变的hash映射,而不是从对象中提取的属性或方法。

        对使用Object构造函数相对,使用字面量在于它并没有作用域解析。因为可能以同样的名字创建一个局部函数,解释器需要从调用Object(0的位置开始一直向上查询作用域链,知道发现全局Object构造函数。

        构造函数Object可以仅接受一个参数,并且还依赖传递的值,该OBject()可能会委派另一个内置函数来创建对象,并且返回了一个并非期望的不同对象。如将数字、字符串、布尔值当做参数传递给Object构造函数,其结果是获得了以不同构造函数所创建的对象,例如:var oschina = new Object(1);ochina.constructor为Number;传递的值是动态的,直到运行时才确定其类型,这种行为会导致意想不到的结果。

      本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

      Top