사용자 정의 proxy 검사 이상 데이터
2850 단어 javascriptes6
const validator = {
set:function (target,prop,value){
if(prop === 'productNum'){
if(value > 200){
throw new Error(' ')
}
}
target[prop] = value
}
}
var products = new Proxy({},validator);
products.productNum = 300;
//
let data = [ //getProductList
{
id:1,
product:{
productName:'aaa',
productDesc:'this is white Lu'
},
stock:null
},
{
id:2,
product:{
productName:'bbb',
productDesc:'this is taylon lu'
},
stock:{
productColor:'yellow',
productNum:14,
id:2
}
},
{
id:3,
product:{
productName:'ccc',
productDesc:'this is lu zhi'
},
stock:{
productColor:'black',
productNum:14,
id:3
}
},
{
id:4,
product:{
productName:'ddd',
productDesc:'this is JR'
},
stock:{
productColor:'green',
productNum:null,
id:4
}
}
]
const validatorData = {
get:function (target,propKey,receiver){
let dataId = target.id;
if(propKey === 'stock'){
try {
if(target[propKey] === null){
alert(' ' + dataId + ' null')
}else if(target[propKey].productNum === null){
alert(' ' + target[propKey].id + ' null, ')
}
}catch(ex){
throw new Error(ex)
}
}
}
}
data.forEach((item,index)=>{
item = new Proxy(item,validatorData);
item.stock // stock
})
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ES6 객체 속성 이름 단순화 표현 및 표현식, 객체 새 메서드, 속성 반복Object.assign() 방법은 원본 대상(source)의 모든 열거 가능한 속성을 목표 대상(target)에 통합시킨다. 이것은 항상 새로운 자신의 속성을 만들고 setter을 호출하지 않는 작업이다.처음에 어...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.