第一种varmybase={getFormatDate:function(){return'里面';}};第二中varmybase={}mybase.test=function(){return'外面';}这两种有什么差别
2 回答
莫回无
TA贡献1865条经验 获得超7个赞
题主应该这样问会好理解一点,“将对象的属性和方法写在『里面』和写在对象『外面』,那个好?”和@sobranie同学观点一样,这两种方式在对对象的属性和方法是没有任何影响的,没有好坏之分。第一种,将对象的属性和方法写在『里面』,会重置对象,那么对象之前的属性和方法丢失;第二种,将对象的属性和方法写在『外面』,可以在已有的对象里添加属性和方法。那么使用场景:1.当你不想清空对象之前的属性和方法时,请用第二种。2.当你知道这个对象之前没有被创建过,两个都可以。
www说
TA贡献1775条经验 获得超8个赞
你写个例子比较简单,体现不出这样做有什么区别,对于功能、this等,这两个没有明显区别。vara={X:'...'}之后如果你再给a添加一个Y属性,就不能这么写:vara={Y:'...'}这样X属性就丢了,你就得这么写vara={X:'...',Y:'...'}但是这样你就得把a的属性重写一遍,或者直接a.Y='...'这样就是第二种方法了。对于js的对象,只要你写了a={...},都是对原来a对象的覆盖,而a.Y='...'仅仅是对某一个属性的覆盖,比较安全
添加回答
举报
0/150
提交
取消