$(function(){
var model = function(){
return {
prop: function(){ return $('input').val(); }
}
}();
$('button').click(function(){
console.log(model.prop);
$('label').text(model.prop)
})
})
检查控制台输出与html中的更新值。没有“()”调用,它如何获得返回值而不是func的主体?
P.S。我的意思是,他称为model.prop而不是model.prop()
答案 0 :(得分:4)
因为text()
接受一个回调函数,可以从中导出所需的文本。
http://api.jquery.com/text/#text-functionindex--text
如果你传递一个字符串,它会输出。如果你传递一个函数,它会执行它并吐出返回值。
答案 1 :(得分:3)
因为text
方法也接受函数作为参数并在内部调用它。
查看this documentation接受函数作为参数的位置。
function(index,text)类型:Function()返回文本的函数 要设置的内容。接收集合中元素的索引位置 和旧文本值作为参数。
如果要打印功能体,可以调用toString()打印功能体
$('label').text(model.prop.toString())
演示:Fiddle
答案 2 :(得分:2)
因为您可以将函数传递给几乎每个jQuery方法,以便为集合中的单个元素动态创建值。来自the docs:
.text(函数(索引,文本))
function(index, text)
输入:Function()返回要设置的文本内容的函数。接收集合中元素的索引位置和旧文本值作为参数。
答案 3 :(得分:1)
从jQuery 1.4开始,如果传递给$ .text的参数是一个函数,jQuery将执行它并将其结果用作文本。