今天我们来设计一个业务类
还是那个news类,为了规范和业务代码统一性,我们往往胡要求做一些约定,比如有这样一个news类:
var news = {
data(){
return {id:101, title:'新闻标题'};
},
};
// 然后我们可以这样访问
alert(news.data().id);
这个data()
是强制规定的,是我们的一个规范。
var news = {
data(){
return {id:101, title:'新闻标题'};
},
methods:{
show(){
alert(this.data().id);
}
}
};
// 然后我们可以这样访问
news.methods.show();
我们通过news.methods.show()
不能成功访问,会报
Uncaught TypeError: this.data is not a function(…)
因为show
里的this
并不是news
对象本身,而是指methods
。
下面来改造一下:
var news = {
data(){
return {id:101, title:'新闻标题'};
},
methods:{
show(){
alert(this.id);
}
}
};
// 然后我们可以这样访问
Object.assign(news.methods, news.data());
news.methods.show();
Object.assign()
可以把任意多个源对象自身的可枚举属性拷贝给目标对象,然后返回目标对象。