日期:2014-05-16  浏览次数:20465 次

第二段代码,优势在哪?
JScript code

            function Odemo(name)
            {
                this.name1=name;
                this.sayName=sayName;    //引用外面的函数
            }         
            
            function sayName()
            {
                return this.name1;
            }
            
            var a=new Odemo('aaa');
            alert(a.sayName());
            
            var b=new Odemo('bbb');
            alert(b.sayName());
            
            alert(a.sayName==b.sayName);    //显示true



JScript code

                function Odemo(){}
                Odemo.prototype.name='abc';
                Odemo.prototype.sayName=function()
                {
                    return this.name;
                }
                
                var a=new Odemo();
                alert(a.sayName());    //显示abc
                
                var b=new Odemo();
                alert(b.sayName());    //显示abc
                
                alert(a.syaName==b.sayName);    //显示false



第一段代码的sayName是相等的
第二段则不相等的

是不是说第二段每new一次Odemo
就创建了一个新的对象?

那这样,相对比第一段,优势在哪?

------解决方案--------------------
保护变量。。
------解决方案--------------------
第二段最后一句a.syaName拼写错了,拜托别拿这种低级错误在这浪费大家感情好么?
这两段代码的区别在于,第一段的name是独立的,第二段的name是共享的,仅此而已,sayName都是同一个