this.property和带冒号的属性之间的区别

时间:2014-03-30 21:55:01

标签: javascript this

制作链接列表类:

function LinkedList(){
           ...

有什么区别:

this.addNode = function(data){
           ...

addNode: function(data){
           ...

1 个答案:

答案 0 :(得分:2)

这会在对象上创建一个属性(假设this引用一个对象)

this.addNode = function(data) { ...

这是一个赋值表达式,如果它本身就是一个,那么它就包含一个语句。

另一方面,这是对象文字表达式的一部分:

addNode: function(data) { ...

它只在对象文字中有意义,它看起来像:

var someObject = {
  property1: value1,
  property2: value2,
  // ...
};

从更广泛的意义上说,比较两者并没有多大意义;在某种程度上,他们是以两种不同的方式做同样的事情,但是他们在不相交的情境中是有意义的。第一种是在现有对象上添加或重置属性的方法,而第二种方法是在创建新对象时设置属性。