Object.defineProperty定义的属性在谷歌浏览器显示的问题

1 代码如下

function Vue () {    this._init()
}    

Vue.prototype._init = function () {    let vm = this}Object.defineProperty(Vue.prototype, '$ssrContext', {
    get () {        return false
    }
})const vm = new Vue()

2 实例化后在浏览器查看到如下
https://img4.mukewang.com/5c5ae27b0001add202360126.jpg

3 问题
同样在原型上定义的方法,使用Object.defineProperty方法,为什么在当前实例下就有一个$ssrContext属性,是否是浏览器实现原因?


MMMHUHU
浏览 762回答 1
1回答

达令说

Vue.prototype._init这种写法是在 Vue 的原型上定义方法,实例通过 proto 可访问到。vm.__proto__ === Vue.prototype // trueObject.defineProperty(Vue.prototype, '$ssrContext', {     get () {        return false     } })用 get 的时候回默认继承属性。Object.defineProperty(Vue.prototype, '$ssrContext', {    value: false})这样写就么有。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript