扫码关注官方订阅号
第一种
var mybase = { getFormatDate:function(){ return '里面'; } };
第二中
var mybase = {} mybase.test = function(){ return '外面'; }
这两种有什么差别
题主应该这样问会好理解一点,“将对象的属性和方法写在『里面』和写在对象『外面』,那个好?”
和 @sobranie 同学观点一样,这两种方式在对对象的属性和方法是没有任何影响的,没有好坏之分。
第一种,将对象的属性和方法写在『里面』,会重置对象,那么对象之前的属性和方法丢失; 第二种,将对象的属性和方法写在『外面』,可以在已有的对象里添加属性和方法。
那么使用场景: 1. 当你不想清空对象之前的属性和方法时,请用第二种。 2. 当你知道这个对象之前没有被创建过,两个都可以。
你写个例子比较简单,体现不出这样做有什么区别,对于功能、this等,这两个没有明显区别。
var a = { X: '...' }
之后如果你再给a添加一个Y属性,就不能这么写:
var a = { Y: '...' }
这样X属性就丢了,你就得这么写
var a = { X: '...', Y: '...' }
但是这样你就得把a的属性重写一遍,或者直接
a.Y = '...'
这样就是第二种方法了。
对于js的对象,只要你写了a = {...},都是对原来a对象的覆盖,而a.Y = '...'仅仅是对某一个属性的覆盖,比较安全
调用函数时返回一下 this ,两者不是一样的吗?
var mybase1 = { a:'mybase1', test1:function(){ console.log(this); } }; mybase1.test1(); //Object {a: "mybase1", test1: function} var mybase2 = {}; mybase2.b = 'mybase2'; mybase2.test2 = function(){ console.log(this); }; mybase2.test2(); //Object {b: "mybase2", test2: function}
明显是第一种嘛! 没看到 第一种可以少写个对象名字。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
题主应该这样问会好理解一点,“将对象的属性和方法写在『里面』和写在对象『外面』,那个好?”
和 @sobranie 同学观点一样,这两种方式在对对象的属性和方法是没有任何影响的,没有好坏之分。
第一种,将对象的属性和方法写在『里面』,会重置对象,那么对象之前的属性和方法丢失;
第二种,将对象的属性和方法写在『外面』,可以在已有的对象里添加属性和方法。
那么使用场景:
1. 当你不想清空对象之前的属性和方法时,请用第二种。
2. 当你知道这个对象之前没有被创建过,两个都可以。
你写个例子比较简单,体现不出这样做有什么区别,对于功能、this等,这两个没有明显区别。
之后如果你再给a添加一个Y属性,就不能这么写:
这样X属性就丢了,你就得这么写
但是这样你就得把a的属性重写一遍,或者直接
这样就是第二种方法了。
对于js的对象,只要你写了a = {...},都是对原来a对象的覆盖,而a.Y = '...'仅仅是对某一个属性的覆盖,比较安全
调用函数时返回一下 this ,两者不是一样的吗?
明显是第一种嘛!
没看到 第一种可以少写个对象名字。