javascript - JS 内部对象使用外部对象的属性,该怎么写?
高洛峰
高洛峰 2017-04-10 14:28:52
[JavaScript讨论组]

想实现:button里的text用o里的text。

var o = {
    text: '保存',
    buttons: [{
        text: o.text
    }]
};

这样写,Console 会报错,TypeError: Cannot read property 'text' of undefined

并且,我想text,button属性一次性全放在对象o里定义,有方法没?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(5)
大家讲道理
var o = {
  text: '保存',
  button: [{
    text: setTimeout(function(){o.button[0].text = o.text}, 0)
  }]
}

问题在于访问 o.texto 的定义还未执行完成 利用 setTimeout 延迟执行赋值操作可以达到效果

PHP中文网
var text = '保存';
var o = {
    text: text,
    buttons: [{
        text: text
    }]
};

这样就不会报错了,不知道是不是你想要的

天蓬老师

原因如StephenLee所说,正在定义对象期间,怎么访问呢?
所以,这么做即可。

var o={};
o.name='xiaohao';
o.button=[];
o.button.push({text:o.name});
怪我咯

你这个概念是不是o是父类,下面有很多子类button,子类继承父类的属性即可。

你可以写一个inherit函数,把父类所有的属性复制到子类。

关于继承的方法网上也有很多

高洛峰

this引用

var o = {
text: text,
buttons: [{
    text: this.text
}]

};

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号