Javascript Object.defineProperty引发错误,因为未定义配置
我正在读Addy Osmani的《JavaScript设计模式》一书,为什么他在不工作的情况下使用这样的配置Javascript Object.defineProperty引发错误,因为未定义配置,javascript,Javascript,我正在读Addy Osmani的《JavaScript设计模式》一书,为什么他在不工作的情况下使用这样的配置 var defineProp = function ( obj, key, value) { config.value = value; Object.defineProperty(obj, key, config); } var man = Object.create(null); defineProp( man, 'car', 'Delorean'); definePro
var defineProp = function ( obj, key, value) {
config.value = value;
Object.defineProperty(obj, key, config);
}
var man = Object.create(null);
defineProp( man, 'car', 'Delorean');
defineProp( man, 'dob', '1981');
defineProp( man, 'beard', false);
// As we will see a little later in the book, these methods can even be used for inheritance, as follows:
var driver = Object.create(man);
defineProp(driver, 'topSpeed', '100mph');
driver.topSpeed // 100mph
你确定你没有跳过任何东西吗?这可能只是书中的一个印刷错误。您在哪里设置
config
变量的值?config
变量的声明在哪里?如果查看该引用,您会发现definePro()
函数看起来有很大不同。您发布的代码缺少config
对象的声明。如果在更高范围的代码中其他地方没有出现,那么您显示的是一个打字错误。但是,它可能是在一个更高的范围内声明的,只是由这个函数使用(这不是一个好的设计)。如果您在提供的链接点中搜索defineProp()
,您将看到该函数更合适的定义。在我的.pdf文件中,从未声明过config。感谢@Pointy为我展示最新更新。