vue3 - mini-vue(七)实现isProxy

246 阅读1分钟

isProxy

这个是目前位置最简单的实现了,检查一个对象是不是Proxy

测试用例

// 如果对象是一个reactive或者readonly那么它就是一个Proxy
// 在原来的基础上加一段代码describe('reactive', () => {
describe('reactive', () => {
  it('happy path', () => {
    const original = { foo: 1 }
    const observed = reactive(original)
    expect(observed).not.toBe(original)
    expect(observed.foo).toBe(1)
    expect(isReactive(observed)).toBe(true)
    expect(isReactive(original)).toBe(false)
    // observed 是一个代理对象
    expect(isProxy(observed)).toBe(true)
  })
})

描述

如果一个对象是readonly或reactive,那么它就是Proxy

实现

export function isProxy(raw) {
  return isReactive(raw) || isReadOnly(raw)
}