1.点击按钮会不会刷新页面。
<template>
<div>
<ul>
<li v-for="item in obj">{{item}}</li>
</ul>
<button @click="change">点击</button>
</div>
</template>
<script>
export default {
data(){
return{
obj : {
a : '1'
}
}
},
methods:{
change(){
this.obj.b = '改变'
}
}
}
</script>
答案:不会。因为新添加的b属性不是响应式的。
2.代码的执行结果
function Foo(){
Foo.a=function(){console.log(1)}
this.a=function(){console.log(2) }
}
Foo.prototype.a=function(){console.log(3)}
Foo.a=function(){console.log(4)}
Foo.a();
let obj =new Foo();
obj.a();
Foo.a();
答案:4 2 1。 解释:
- 第一次运行Foo.a() 并没有执行函数Foo。所以会打印4
- 第二次运行new 了一个Foo,FOO里面的a属性会覆盖Foo之前的a。
- obj调用a属性,直接调用obj的a方法 打印2
- 最后执行Foo.a()因为a属性已经被覆盖了 所以打印1.