1樓:奇七默默
var test =
用點的時候,後面需要是一
個指定的屬性名稱,譬如說 test.name,不需要用引號括起來,因為預設name就是test裡面的屬性,但是如果寫 var obj = name 。test.
obj就是不正確的,因為obj這個時候是被當成乙個固定的字串,不是變數。
用中括號的時候 ,括號裡面可以是變數或者字串,譬如說,var obj = "name",test[obj]會自動識別成obj["name"],因為中括號會計算一次生成字串訪問。當然可以直接寫obj["name"],
其實 test.name 最終也會按照 test["name"]去執行的
所以用點的時候後面一定要是乙個指定的 屬性名,用時候後面一定是乙個變數或者固定屬性名的字串。
有誤請指正,謝謝!
2樓:水能載舟
中括號運算子總是能代替點運算子。但點運算子卻不一定能全部代替中括號運算子。
中括號運算子可以用字串變數的內容作為屬性名。點運算子不能。
中括號運算子可以用純數字為屬性名。點運算子不能。
中括號運算子可以用js的關鍵字和保留字作為屬性名。點運算子不能
3樓:
不考慮用作陣列或集合下標使用的情況,單針對某個物件,這兩種寫法本質是一樣的。
但是第2種寫法可以使用變數作為屬性名,在實際使用過程中非常靈活,比如可以寫出很通用的**,而不用考慮具體物件的結構。
4樓:幻想武士
木有區別。都是取值(設定值)。可以說是乙個習慣用法。
如果用的話,就有點小小區別了。如果用於集合或陣列,則是獲取[i]裡面的第i個值。所以。
在物件或陣列(集合)中這樣用。對應於物件,建議用"."獲取或設定。
如果物件用,則是獲取或設定["age"]裡面屬性叫age所對應的屬性值
5樓:貓疫
a.b中a是json物件,b是a中的屬性名。a[b]中a是陣列物件,b是a的陣列索引,即a中第b個元素
js操作物件屬性用點和用中括號有什麼不同
6樓:春風化雨
中括bai號運算子總是du能代替點運算子。但點zhi運算子卻不一定能全dao
部代替內中括號運算子。
中括容號運算子可以用字串變數的內容作為屬性名。點運算子不能。
中括號運算子可以用純數字為屬性名。點運算子不能。
中括號運算子可以用js的關鍵字和保留字作為屬性名。點運算子不能。
js問題,給物件新增屬性和給物件的原型新增屬性有什麼區別?
7樓:那些年那麼
假設有物件objece;
var object = function()然後我 var obj1 = new object();
這裡的obj1就是物件,給物件obj1加乙個屬性 obj1.c = 3;專
但是我再var obj2 = new object();這裡的obj2並沒有屬c這個屬性;
但是我通過原型的方式加屬性c; object.prototype.c = 3;
那麼我var obj3 = new object();
obj3就有c這個屬性
望採納!
8樓:匿名使用者
object.c=3 只是在這個物件上新增了屬性c
object.prototype.c = 3 是在物件原型鏈上新增了屬性c
通過new運算子構造出的例項的原型鏈指向建構函式的原型鏈
9樓:趙宇舟
prototype是對類操作的,
來相當於把
自object重構
了,變成了有a,b,c三個屬性的類,如果沒經過重構,直接new乙個obj3,就是只是開闢了乙個之後兩個引數的object的記憶體空間,壓根沒c屬性的記憶體空間,直接給obj3.c賦值會出錯的
js判斷物件中所有屬性是否為空,JS中判斷乙個object的所有值是否為空,如果為空則返回null,只要有乙個值不為空,返回這個物件
function objectkeyisempty obj else return empty 其實不用那麼麻煩,只用定義乙個方法,然後使用下面的 片段來判斷字段是否為空 js中判斷乙個object的所有值是否為空,如果為空則返回null,只要有乙個值不為空,返回這個物件 var obj funct...
js 物件的屬性名是變數怎麼處理
var obj var key testkey console.log obj key 使用方括號訪問 目標 js的屬性名可以使用變數 舉例 js物件object,當賦給該物件屬性的時候可以採用以下方式 如下 var object object.prop1 value1 object.prop2 v...
有哪些方法可以檢測JS物件存在屬性重複
var obj var key testkey console.log obj key 使用方括號訪問 目標 js的屬性名可以使用變數 舉例 js物件object,當賦給該物件屬性的時候可以採用以下方式 如下 var object object.prop1 value1 object.prop2 v...