jQuery可以使用getter和setter吗?

时间:2016-11-01 15:24:48

标签: jquery getter-setter

我正在学习如何在JavaScript中定义getter和setter:

myObject = {}
myParameters = {}
myParameters.get = function() { 
    return this.value 
}

myParameters.set = function(myArgument) { 
    this.value = myArgument
}
Object.defineProperty(myObject, 'myProperty', myParameters)
myObject.myProperty = 3.14
console.log(myObject.myProperty)

问:jQuery可以使用getter而不是:$('#myId').val()$('#myId').text()吗?

jQuery可以使用setter而不是$('#myId').val(x)$('#myId').text(x)吗?

1 个答案:

答案 0 :(得分:3)

是的,它当然可以。但它最初是在JavaScript拥有getter和setter之前创建的。 jQuery是在2006年1月创建的。标准化的JavaScript(正确的,“ECMAScript”)在2009年12月的ECMAScript第5版规范之前没有正式获得getter和setter(虽然Mozilla的JavaScript在之前有它们),并且它是几年之前可以依赖野外浏览器来实现它们(事实上,IE8仍然接近3% of the worldwide market share,并且它不支持它们 - 除了 - 奇怪 - 在DOM元素上。)

并且tcooc's very good point使用setter意味着你不能像$("#foo").text("updated").addClass("highlight");这样调用链接,这是jQuery API的一个重要特性(不是说它好或坏,只是它很重要)。