关于 Object ,defineProperty 方法和数据 双向绑定 :


//创建一个Object对象 这里的Object相当于祖宗一样
var  obj = new Object();

每个Object类型的实例共有的属性和方法:
constructor: 保存着用于创建当前对象的函数。
hasOwnProperty:用于检测给定的属性在当前对象的实例中是否存在。
isPrototypeOf : 用于检查传入的对象是否是当前对象的原型
propertyIsEnumerble : 用于检查给定属性能否使用for-in来枚举
toLocaleString() : 返回对象的字符串表示。
toString() : 返回对象的字符串表示。
valueOf() : 返回对象的字符串,数值,或布尔表示。通常和toString() 返回的值相同。


方法一 :
defineProperty() 定义对象属性
在一个对象上定义一个新的属性,或者修改一个对象的现有属性 并返回这个对象
Object.defineProperty(obj, prop , descriptor)
obj: 对象
prop: 要定义 或 修改的属性名称
descriptor:将被定义 或修改的属性描述符 (属性或方法:可以是对象

关于数据双向绑定:

1、普通的都是单向流数据:
/*数据双向绑定 使用 : 数据劫持 和 发布订阅*/
var obj = {}
Object.defineProperty(obj,'prpertyname',{
    get:function() {
        console.log(obj,'订阅')
        return obj ;
    },
    set:function(newNum) {
        console.log(newNum,'发布')
        $('#inputs').val(newNum)
        $('#zzdemo').html(newNum)
    }
})

$('#inputs')[0].onkeyup = function(e) {
    console.log(e.target.value,'输入')
    obj.prpertyname = e.target.value
}

setTimeout(()=>{
    obj.prpertyname = '我是model--- view'
    // $('#zzdemo').html('我是model--- view')
},3000)

参考:
https://zhuanlan.zhihu.com/p/61306556?utm_source=wechat_session&utm_medium=social&utm_oi=1080885602706259968

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值