不理解原型鏈的set/get部分
我在IDE嘗試的時候,試了這樣的方式,發(fā)現(xiàn)是可以直接改原型鏈的值?
var foo = {}
foo.x = 1
var obj = Object.create(foo)
console.log("inherit from foo"+obj.hasOwnProperty('x')) //false,所以說明obj遺傳了foo的x
console.log(obj.x)//1
obj.x = 2//照理說這樣是沒辦法改變foo的值?
console.log(obj.x)//可是變成了2
我的問題是,那是不是只有用defineProperty創(chuàng)建的原型鏈屬性會無法被賦值?
2016-05-18
2016-06-30
不知道還在不,借用樓上的例子,foo可以理解是obj的父對象,foo中的屬性,obj都會拷貝到自己哪里,但這是拷貝的,所以有初值,所以修改obj.x的值不會影響到foo.x的值。這和值類型類似。