為什么foo上有set方法obj就無法使用set方法給自己設(shè)值呢
構(gòu)造一個(gè)obj對(duì)象的時(shí)候他自己的屬性應(yīng)該都是空的吧
其他的屬性都是原型鏈上的吧
那set方法是怎么給新構(gòu)造出來的obj對(duì)象賦值的呢
構(gòu)造一個(gè)obj對(duì)象的時(shí)候他自己的屬性應(yīng)該都是空的吧
其他的屬性都是原型鏈上的吧
那set方法是怎么給新構(gòu)造出來的obj對(duì)象賦值的呢
2017-03-09
舉報(bào)
2017-04-23
視頻中是get方法,obj是foo的實(shí)例,它本身是沒有z屬性的,當(dāng)obj.z = 10賦值時(shí)程序發(fā)現(xiàn)obj并沒有z這個(gè)屬性,于是就像上查找foo的原型屬性z,并且這個(gè)z的屬性值是被get方法暴露出來的,是不能被改變的,只能通過set方法改變,你要obj的z能設(shè)置屬性就要給z設(shè)置一個(gè)set方法就可以了,Object.definedProperty(obj, 'z', {set: function(val){return val}})
2017-03-10
你說的是obj.prototype吧,obj.prototype是不允許修改,配置和枚舉的