課程
/前端開發(fā)
/JavaScript
/JavaScript深入淺出
構造一個obj對象的時候他自己的屬性應該都是空的吧
其他的屬性都是原型鏈上的吧
那set方法是怎么給新構造出來的obj對象賦值的呢
2017-03-09
源自:JavaScript深入淺出 4-4
正在回答
視頻中是get方法,obj是foo的實例,它本身是沒有z屬性的,當obj.z = 10賦值時程序發(fā)現obj并沒有z這個屬性,于是就像上查找foo的原型屬性z,并且這個z的屬性值是被get方法暴露出來的,是不能被改變的,只能通過set方法改變,你要obj的z能設置屬性就要給z設置一個set方法就可以了,Object.definedProperty(obj, 'z', {set: function(val){return val}})
qq_謎離_03319966 提問者
你說的是obj.prototype吧,obj.prototype是不允許修改,配置和枚舉的
舉報
由淺入深學習JS語言特性,且解析JS常見誤區(qū),從入門到掌握
1 回答set方法賦值不成功?
2 回答為什么我在給子類添加原型方法后無法調用父類原型上的方法
1 回答不太懂set方法,怎么結果不對?
2 回答set方法只能接受一個參數嗎?
3 回答這里的get和set方法怎么跟前面講的不一樣,
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優(yōu)惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2017-04-23
視頻中是get方法,obj是foo的實例,它本身是沒有z屬性的,當obj.z = 10賦值時程序發(fā)現obj并沒有z這個屬性,于是就像上查找foo的原型屬性z,并且這個z的屬性值是被get方法暴露出來的,是不能被改變的,只能通過set方法改變,你要obj的z能設置屬性就要給z設置一個set方法就可以了,Object.definedProperty(obj, 'z', {set: function(val){return val}})
2017-03-10
你說的是obj.prototype吧,obj.prototype是不允許修改,配置和枚舉的