前面讲到了物件的属性读取,那如果物件的某个属性并非值而是一个函式呢?
这也是可行的,我们并非要赋予属性一个值,也可以给予一个函式用来计算
假设 Jerry 的农场内有5只小鸭,10只小鸡,柴犬和柯基两只狗,三块玉米田分别有5根玉米、6根玉米、7根玉米
综合以上来创建一个物件:
var farm = { duck: 5, chicken: 10, dogs: ['柴犬','柯基'], cornField: [5,6,7]}
此时若要新增一个属性用来计算总共有多少只家禽,可以如下:
var farm = { duck: 5, chicken: 10, dogs: ['柴犬','柯基'], cornField: [5,6,7], poultry: function(){ var total = this.duck + this.chicken; console.log(total); },}
我们新增了一个 poultry 属性,并给予一个计算小鸭跟小鸡数量的函式(这里函式可以不用命名),后面对于 this 会再说明,this 的使用法方可以说是博大精深,这里可以暂且当作 farm 这个物件,当然除了上述的第一个方法,我们也可以中途加入 poultry 这个属性,如下:
farm.poultry = function (){ var total = this.duck + this.chicken; console.log(total);}
而当我们在呼叫属性且有函式时,会比较不一样:
farm.poultry();
有属性若为函式,需要跟前面讲到函式时一样,跟函式的呼叫一样需要加括号
睽违好久,终于更新了