来自C#/ PHP,我想在Javascript中创建的类(函数)上拥有完整的getter/setter。在Javascript中创建类getter/setters的最佳方法?
但是,在我遇到的大部分Javascript代码中,并没有使用getter和setter,而是使用了简单的公共变量。
我很高兴地发现在getter和setter John Resig's article,但它的一些意见,其中指出某些浏览器“不支持getter和setter”,这是混淆了我,因为他们不是一个“功能” Javascript支持,但是更多的一种使用基本Javascript语法的简单模式。这篇文章也是在2007年写的,所以现在可能已经过时了。
Javascript中getter和setter的当前状态是什么?今天他们是否确实被所有浏览器“支持”(无论这意味着什么)?他们是一个有用的编程模式的Javascript或Javascript类(功能)更好的公共变量?有没有比以下更好的方式来实现它们?
$(document).ready(function() {
var module = new Module('idcode');
module.set_id_code('new idcode');
module.set_title('new title');
$('body').html(module.get_id_code()+': '+module.get_title());
});
function Module(id_code, title) {
var id_code = id_code;
var title = title;
//id_code
this.get_id_code = function() {
return id_code;
}
this.set_id_code = function(value) {
id_code = value;
}
//title
this.get_title = function() {
return title;
}
this.set_title = function(value) {
title = value;
}
}
为什么你想要代码膨胀? – gdj 2010-12-15 14:30:49
确切地说,我不想让代码膨胀,但我希望将公共和私人访问分离到我的类中,就像我在其他语言(如PHP和C#)中一样。 PHP有__get和__set魔术方法,而C#有它的“属性语法”来获得分离而没有臃肿的语法。在JavaScript中有这样的功能? – 2010-12-15 14:39:39
以上代码段在IE 7/8/9中有效吗? – Shaggy 2014-09-26 07:20:05