我正在深入研究Vue.JS,而且我在从Vue实例获取功能结果时遇到问题。
var DS = {
getOne: function(){ return 1 }
}
var app = new Vue({
el: '#app',
data: {
name: 'Vue.js',
},
methods: {
greet: function (event) {
var data = DS.getOne
console.log(data)
}
}
})
我认为DS.getOne应该已经计算好了,但是我在控制台中得到了boundFn。有没有办法计算这个功能?我在哪里可以阅读更多内容来理解这个问题?
ƒ boundFn(a) {
var l = arguments.length;
return l
? l > 1
? fn.apply(ctx, arguments)
: fn.call(ctx, a)
: fn.call(ctx)
}
答案 0 :(得分:1)
DS.getOne
指的是一个函数,而不是指向1
的数字,正如您所期望的那样。
你可以做以下两件事之一:
第一个选项:不是将data
设置为DS.getOne
,而是将其设置为DS.getOne()
- 区别在于您将调用{{} 1}} function,返回1:
DS.getOne
第二个选项:如果您希望var data = DS.getOne(); // DS.getOne() returns 1
直接指向DS.getOne
,那么您需要在定义1
时立即运行该功能:
getOne
修改:我使用上述第一个选项修改了您的JSFiddle。警报现在正确打印var DS = {
getOne: (function(){ return 1 })() // evaluates to 1
};