通常,构造函数没有返回值。它们只初始化由this值传递进来的对象,而不返回任何东西。但是,构造函数允许返回一个对象值,如果这样做,被返回的对象即成为new表达式的值。在这种情况下,this值所引用的对象就被抛弃了。自己始终理解不了,希望大家多多指教。
<script>
function ss(x,y){
this.w=x;
this.g=y;
return ?? //假如这要用return返回一个对象值怎么弄?
}
var hs = new ss( ???) ;//这真搞晕了,如何才能做到 “被返回的对象即成
为new表达式的值”
alert(???);//如何表示即显示this值所引用的对象就被抛弃????
请大家给提供的范例理解下,谢谢大家了
<script>
function ss(x,y){
this.w=x;
this.g=y;
return ?? //假如这要用return返回一个对象值怎么弄?
}
var hs = new ss( ???) ;//这真搞晕了,如何才能做到 “被返回的对象即成
为new表达式的值”
alert(???);//如何表示即显示this值所引用的对象就被抛弃????
请大家给提供的范例理解下,谢谢大家了
function ss()
{
this.a='a';
this.b='b';
return{
a:'a1',
b:'b1'
}
}
var o = new ss();
alert(o.a);//will alert 'a1' not 'a'
</script>
还有 return{
a:'a1', //a: 标签的话这点不理解,不知道啥意思.
b:'b1' //b: 标签的话这点不理解,不知道啥意思.
}
好像多在swith里多用case:
这里如何理解?
============================
var obj = new Object();
obj.a = 'a1';
obj.b = 'b1';与var obj={
a:'a1',
b:'b1'
}
是等价的。
function ss()
{
this.a='a';
this.b='b';
k={a:'c'}; //这有点疑问,k={a:'c'}是对象直接量,但返回this.a的话,结果差别就很大!
return k;}
var o = new ss();
alert(o.a);//will alert 'a1' not 'a'
alert(o.b);
</script> //结果显示为 c undefine和那段概念一样。-----this值所引用的对象就被抛弃了如果是这样的返回
<script>
function ss()
{
this.a='a';
this.b='b';
this.a='c';return this.a;}
var o = new ss();
alert(o.a);//will alert 'a1' not 'a'
alert(o.b);
</script> //结果为c ,b ----- this值所引用的对象没有被抛弃了呀
还有经常说的对象直接量和this.a(那this.a算对象值么?还是?this.a应该是对象属性值么?)
对象直接量像 o={a:'c'};这类的,可以被称为对象值么? 那this.a='c'或o.a='c'的'c'值算对象值? this.a算对象的属性吧。。看了好多书还是概念不轻呀。请大家帮着给分析下,谢谢了