有什么办法可以通过将一个局部变量指向一个对象属性,在
Javascript中不那么冗长吗?
例如在PHP中,我可以这样做:
$obj->subobject->property = 'Foo'; $property =& $obj->subobject->property; $property = 'Bar'; echo $obj->subobject->property; // output 'Bar'
这不是一个很好的例子,但你得到的想法.
我想在Javascript中复制此行为.我经常不得不深入对象,而且变得非常烦人:
if (please.stop.making.me[somevar].type.so.much.length) { please.stop.making.me[somevar].type.so.much[newSubObjectKey] = anObject; } // perform more operations on the object down here
这将会更容易阅读,更容易输入:
var subObj = is.much.easier.to.type.once; if (subObj.length) { subObj[newSubObjectKey] = anObject; } // Now that's much better
我知道我已经知道了,但是我只是在Javascript中进入“高级新手”.
在Javascript中,一切都是通过值传递的,但变量的类型将决定它是否是通过值传递的引用;
>对象是引用
>基元(数字,字符串等)通过值传递.
简单来说,如果将变量传递给数组的函数,则在函数中修改它将影响父对象.
但是,在数组中传递一个值不会.当然,绝对没有任何东西阻止你在对象中包含一个原语,以确保它像“指针”一样工作.