除了使用new操作符调用构造函数以外,我们也可以抛开new操作符,只用一般函数来创建对象,这样就能执行某些预备工作,并已对象为返回值的函数。、
function her(){ return { name : ‘Jon‘ }; }
然后我们调用her()来生成对象:
var a = her(); a.name; // Jonconsole.log(a.constructor);// function Object(){}
实际上构造函数也是可以返回对象的,只不过this的值使用上将会有所不同。
function Her(){ this.name = ‘Jon‘; return { sex : ‘nv‘ } } var she = new Her(); she.name; // undefined; she.sex; // ‘nv‘
在这里,构造其函数不是返回包含属性name的this对象,而是返回包含属性sex的独立对象。但这也是在返回值是一个对象的前提下,如是一个非对象,照常会返回this.
关于对象是如何在构造函数内部被创建出来的,你可以这样理解:
function Her(){ // var this = {}; this.name = ‘Jon‘; // return this; }
时间: 2024-10-01 15:31:17