通常,构造函数没有返回值。它们只初始化由this值传递进来的对象,而不返回任何东西。但是,构造函数允许返回一个对象值,如果这样做,被返回的对象即成为new表达式的值。在这种情况下,this值所引用的对象就被抛弃了。对象直接量的话 dio={leng:8,weigh:9}; 那在用的过程中
return {leng:8,weigh:9}的{leng:8,weigh:9}是还算对象直接量么?对象直接量必须要完整的“dio = {leng:8,weigh:9};" 必须有一个变量dio才行么? 那dio是对象的一个引用?假如定义一个构造函数
<script>
function aaa(x,y){
this.leng=x; //这有点困惑,因为this.leng是对象的属性,那this所引
用的对象又是谁呢?
this.weigh=y;
}
var nr=new aaa(2,3);
var nr1=new aaa(4,5);
document.write(nr.leng+"<br>");
document.write(nr.weigh+"<br>");
document.write(nr1.leng+"<br>");
document.write(nr1.weigh);
</script>//结果显示的是2,3,4,5没啥说的,但想知道this引用的对象是谁??
情况一:
<script>
function aaa(x,y){
this.leng=x;
this.weigh=y;
this.leng=9; //这有点困惑,因为this.leng是对象的属性
return this.leng; //这个也是返回的是一个对象的属性,那返回对象应该是??
}
var nr=new aaa(2,3);
var nr1=new aaa(4,5);
document.write(nr.leng+"<br>");
document.write(nr.weigh+"<br>");
document.write(nr1.leng+"<br>");
document.write(nr1.weigh);
</script> //结果是 9,3,9,5 ; 这不是与 ”如果这样做,被返回的对象即成为new表达式的值。在这种情况下,this值所引用的对象就被抛弃了。“不是矛盾么?? this值所引用的对象是谁? 好像没有被抛弃吧。情况二:<script>
function aaa(x,y){
this.leng=x;
this.weigh=y;
return {leng:6}; // {leng:6}算是对象直接量么? 对象直接量算一个对象么? 这样返回符合那段话么?
var nr=new aaa(2,3);
var nr1=new aaa(4,5);
document.write(nr.leng+"<br>");
document.write(nr.weigh+"<br>");
document.write(nr1.leng+"<br>");
document.write(nr1.weigh);
</script> //结果显示 6,undefined ,6,undefined,好像this值所用引用的对象被抛弃了,但还是对this
值所引用的对象 感到很模糊,理解的不好。请大家帮着看看谢谢了一个是对象直接量 一般是 dio ={x:1,y:2}; 但假如在没有dio时,比如返回一个对象用return {x:1,y:2};
是返回一个对象直接量还是返回一个对象。对象和对象直接量间的区别,对象的属性和对象之间量的区别,
好像对象属性也是个值,对象之间量也十个值。????????????????????????
大家用return返回一个对象时怎么用呢?return ????;
return {leng:8,weigh:9}的{leng:8,weigh:9}是还算对象直接量么?对象直接量必须要完整的“dio = {leng:8,weigh:9};" 必须有一个变量dio才行么? 那dio是对象的一个引用?假如定义一个构造函数
<script>
function aaa(x,y){
this.leng=x; //这有点困惑,因为this.leng是对象的属性,那this所引
用的对象又是谁呢?
this.weigh=y;
}
var nr=new aaa(2,3);
var nr1=new aaa(4,5);
document.write(nr.leng+"<br>");
document.write(nr.weigh+"<br>");
document.write(nr1.leng+"<br>");
document.write(nr1.weigh);
</script>//结果显示的是2,3,4,5没啥说的,但想知道this引用的对象是谁??
情况一:
<script>
function aaa(x,y){
this.leng=x;
this.weigh=y;
this.leng=9; //这有点困惑,因为this.leng是对象的属性
return this.leng; //这个也是返回的是一个对象的属性,那返回对象应该是??
}
var nr=new aaa(2,3);
var nr1=new aaa(4,5);
document.write(nr.leng+"<br>");
document.write(nr.weigh+"<br>");
document.write(nr1.leng+"<br>");
document.write(nr1.weigh);
</script> //结果是 9,3,9,5 ; 这不是与 ”如果这样做,被返回的对象即成为new表达式的值。在这种情况下,this值所引用的对象就被抛弃了。“不是矛盾么?? this值所引用的对象是谁? 好像没有被抛弃吧。情况二:<script>
function aaa(x,y){
this.leng=x;
this.weigh=y;
return {leng:6}; // {leng:6}算是对象直接量么? 对象直接量算一个对象么? 这样返回符合那段话么?
var nr=new aaa(2,3);
var nr1=new aaa(4,5);
document.write(nr.leng+"<br>");
document.write(nr.weigh+"<br>");
document.write(nr1.leng+"<br>");
document.write(nr1.weigh);
</script> //结果显示 6,undefined ,6,undefined,好像this值所用引用的对象被抛弃了,但还是对this
值所引用的对象 感到很模糊,理解的不好。请大家帮着看看谢谢了一个是对象直接量 一般是 dio ={x:1,y:2}; 但假如在没有dio时,比如返回一个对象用return {x:1,y:2};
是返回一个对象直接量还是返回一个对象。对象和对象直接量间的区别,对象的属性和对象之间量的区别,
好像对象属性也是个值,对象之间量也十个值。????????????????????????
大家用return返回一个对象时怎么用呢?return ????;
{
this.leng=x;
this.weigh=y;
this.leng=9;
return this.leng;
}
这样的类,在 new 实例化的时候得到的对象已经不再是 aaa 的实例而是数字9这个实例了,因为你的 function 类定义里使用 return 做了跳转。这个很正常哪
window
触发事件的HTML对象
new 出来的实现
类里的原型
JSON对象