最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

JS中的构造函数详细解析_javascript技巧

来源:动视网 责编:小采 时间:2020-11-27 21:20:42
文档

JS中的构造函数详细解析_javascript技巧

JS中的构造函数详细解析_javascript技巧:在JavaScript中,任何合法的函数都可以作为对象的构造函数,这既包括系统内置函数,也包括用户自己定义的函数。一旦函数被作为构造函数执行,它内部的this属性将引用函数本身。 通常来说,构造函数没有返回值,它们只是初始化由this指针传递进来的对象,并且
推荐度:
导读JS中的构造函数详细解析_javascript技巧:在JavaScript中,任何合法的函数都可以作为对象的构造函数,这既包括系统内置函数,也包括用户自己定义的函数。一旦函数被作为构造函数执行,它内部的this属性将引用函数本身。 通常来说,构造函数没有返回值,它们只是初始化由this指针传递进来的对象,并且


在JavaScript中,任何合法的函数都可以作为对象的构造函数,这既包括系统内置函数,也包括用户自己定义的函数。一旦函数被作为构造函数执行,它内部的this属性将引用函数本身。

通常来说,构造函数没有返回值,它们只是初始化由this指针传递进来的对象,并且什么也不返回。如果一个函数有返回值,被返回的对象就成了new表达式的值。从形式上看,一个函数被作为构造函数还是普通函数执行的唯一区别,是否用new运算符。

上面的描述事实上有着更为精确的含义,这要把函数如果有返回值的情况分为函数的返回值是引用类型和值类型两种情况。

如果一个函数的返回值是引用类型(数组,对象或者函数)的数据,那么这个函数作为构造函数用new运算符执行构造时,运算的结果将被它的返回值取代,这时候,构造函数体内的this值丢失了,取而代之的是被返回的对象。例如:
代码如下:
function test()
{
this.a=10;
return function()
{
return 1;
}
}
alert m=new test();
var n=test();
alert(m);//返回return后面的闭包
alert(n);//返回return 后面的闭包

运行结果m的值和n的值是一样的,都是test函数返回的闭包,而this引用的对象和this.a=10的赋值结果全部被丢弃。

如果一个函数的返回值是一个值类型,那么这个函数作为构造函数用new运算符执行构造时,它的返回值将被丢弃。new 表达式的结果仍然是this所引用的对象。
代码如下:
function test()
{
this.a=10;
return 1;
}
alert m=new test();
var n=test();
alert(m)//返回【Object】
alert(n)//返回1.

文档

JS中的构造函数详细解析_javascript技巧

JS中的构造函数详细解析_javascript技巧:在JavaScript中,任何合法的函数都可以作为对象的构造函数,这既包括系统内置函数,也包括用户自己定义的函数。一旦函数被作为构造函数执行,它内部的this属性将引用函数本身。 通常来说,构造函数没有返回值,它们只是初始化由this指针传递进来的对象,并且
推荐度:
标签: 技巧 js javascript
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top