为什么调用的时候加上括号就会报错呢?
来源:2-19 自由编程
Aurora_Meteor
2020-05-15 18:31:51
<template>
<div>{{sort}}</div>
</template>
<script>
export default {
data() {
return {
list: [1, 4, 6, 7, -9, 4, 0, -2, -1, 8]
};
},
computed: {
sort(){
return this.list.sort();
}
}
};
</script>
调用的时候不加括号就可以正常显示,加了括号就会报错,不是说这个函数不传参数的时候写不写括号都行吗?
<div>{{sort()}}</div>

另外,sort方法不是我这样直接list.sort()调用吗?怎么看好多同学都在里面写一个函数,我这个没有写内容也成功显示了呀,是我记错了么?课程在哪讲的这个,找不到了....网上查到好像sort方法使用的时候里面写的函数都不一样,还有的是Array.sort(数组名)这样调用的,有点迷糊
2回答
同学你好,对于你的问题解答如下:
1、vue语法规定,computed里面定义的是计算属性,也就是说如下所示为值的sort是个属性,在template中使用时,需要直接写属性名,不可以添加括号调用。

2、同学这种写法,直接调用的sort方法是可以的。
js语法中规定,sort方法默认是升序排列。传递参数是为了控制是升序还是降序排列数组
可以通过传递一个回调函数(格式是固定的),同学可以结合如下示例测试理解记忆一下

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
好帮手慕慕子
2020-05-16
同学你好,在vue中,在computed中的计算属性默认是不可以传参的。但可以利用闭包实现传参,示例:


页面显示结果

实际工作中一般不会在computed中传递参数,上面这种方式同学了解下即可。
同学理解是对的,一般需要传参的方法是在methods中定义的。
祝学习愉快~
相似问题