javascript - vue2에서 __ob__을 사용하여 데이터를 제거하는 방법은 무엇입니까?
给我你的怀抱
给我你的怀抱 2017-05-19 10:21:14
0
3
1739
으아악

콘솔의 This.source[this.schema_key]는 다음과 같습니다

으아악

이러한 데이터를 직접 얻을 수 있는 방법이 있나요

으아악
给我你的怀抱
给我你的怀抱

모든 응답(3)
PHPzhong

__ob__: 관찰자이 데이터는 vue 프레임워크에서 데이터에 대해 설정한 모니터이며 일반적으로 열거할 수 없습니다. __ob__: Observer这些数据是vue这个框架对数据设置的监控器,一般都是不可枚举的。

console.log这样的打印函数,被打印的变量会执行自身的toString(),这样,即便内部属性是不可枚举,实际上也能看到。举个例子:

const obj = {
    a: 0,
    b: 1
};
Object.defineProperty(obj, 'b', {
    writable: false,
    enumerable: false,
    configurable: false
});

console.log(obj);    // Object {a: 0, b: 1}

因为你已经将数据绑定在了vue之中,vue就肯定要为数据添加监控器的,如果你强制删掉了这些监控器,那么这些数据也就失去了监控,那么你使用vue的意义何在……


如果仅仅是去掉这些监控器而不考虑后果的话,把对象复制一份就行了,因为复制的对象是不包含不可枚举属性的。

const obj1 = {
    a: 0,
    b: 1
};
Object.defineProperty(obj1, 'b', {
    writable: false,
    enumerable: false,
    configurable: false
});
const obj2 = Object.assign({}, obj1);

console.log(obj2);    // Object {a: 0}

js这类动态语言,复制对象是个很头疼的事情。我写了个简单的,你可以参考一下:

//对象深复制,不考虑循环引用的情况
function cloneObj(from) {
    return Object.keys(from)
        .reduce((obj, key) => (obj[key] = clone(from[key]), obj), {});
}
//数组深复制,不考虑循环引用的情况
function cloneArr(from) {
    return from.map((n) => clone(n));
}
// 复制输入值
function clone(from) {
    if (from instanceof Array) {
        return cloneArr(from);
    } else if (from instanceof Object) {
        return cloneObj(from);
    } else {
        return (from);
    }
}

const obj = [
    {
        name: '1'
    },
    {
        name: '2'
    }
];
const obj2 = clone(obj);
console.log(obj2);

在外面直接用clone()

console.log와 같은 인쇄 기능의 경우 인쇄된 변수는 자체 toString()을 실행합니다. 이러한 방식으로 내부 속성을 열거할 수 없더라도 실제로는 가능합니다. 도착. 예: 🎜 으아아아 🎜vue에 데이터를 바인딩했기 때문에 vue는 데이터에 대한 모니터를 추가해야 합니다. 이러한 모니터를 강제로 삭제하면 데이터 모니터링이 손실되므로 vue를 사용하는 이유는 무엇입니까...🎜? 🎜결과를 고려하지 않고 이러한 모니터만 제거하는 경우 복사된 개체에 열거할 수 없는 속성이 포함되어 있지 않으므로 개체를 복사하기만 하면 됩니다. 🎜 으아아아 🎜JS와 같은 동적 언어에서는 객체를 복사하는 것이 골치 아픈 일입니다. 저는 간단한 글을 썼으니 참고하시면 됩니다: 🎜 으아아아 🎜그냥 외부에서 직접 clone() 메소드를 사용하세요. 🎜
小葫芦

데이터에는 아무런 영향이 없습니다~

曾经蜡笔没有小新

이와 마찬가지로 해결해보세요. . . .

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿