> 软件应用
js构造函数的构造函数是什么(js构造函数的八种方法)
导语:怪异的js:构造函数(1)
我们定义构造函数时,通常是这样的:
function Test(x){
this.a = x;
}
let ob = new Test('a');
我们定义了一个Test构造函数然后通过new操作符执行Test函数。
在这个过程中我们首先创建了一个新的对象,然后将函数的this指向这个新对象,再执行函数,最后将这个新对象返回赋值给ob。
这个是正常的构造函数执行流程。
但是代码时人写的,总会出错。假如,我们在构造函数内使用return返回一个对象会发生什么呢??代码:
function Test(x){ this.a = x; return { b:'b' }}let ob = new Test('a');console.log(ob)console.log(ob instanceof Test);
这时ob对象的引用其实是return后面的对象。ob也不是Test的实例了。
如果我们在return后面返回一个基本类型,就是另外一个情况了。
function Test(x){ let b = 'b'; this.a = x; return b}let ob = new Test('a');console.log(ob)console.log(ob instanceof Test);
这时ob对象的引用其实是this的指向。ob还是Test的实例。
本文内容由快快网络小岑创作整理编辑!