物件及函式相關

weixin_51767880發表於2020-11-04

物件
所有的函式都繼承自物件
說一下對建構函式,原型,例項的理解/談一談原型,原型鏈?
1.每一個建構函式中都有一個原型物件
2.每一個Object建構函式有一個prototype屬性 prototype屬性的記憶體地址指向Object建構函式的原型物件prototype
3.同時prototype原型物件中有一個constructor方法指向Object建構函式
4.obj例項中並沒有寫toString()和valueOf()方法,可是它可以呼叫,是因為obj例項可以繼承Object建構函式原型物件的方法來使用。(從原型鏈來繼承)
5.obj例項可以使用它的建構函式的原型物件中的例項和方法,為什麼?
將Object建構函式比作目前,其產生的原型物件比作父親,例項是兒子(由母親產生 也就是OBject建構函式,obj由new Object()產生),這樣理解,兒子可以用父親所擁有的東西。兒子什麼都沒有,但是兒子可以問父親要。
obj例項內有name屬性。age屬性,除了可以訪問這兩個屬性,它還可以訪問toString(),valueOf()。

Object
物件的建立
建構函式表示法
var obj = new Object(); //{}
物件字面量表示法
var obj2 = {};
新增
obj2.name = ‘’;
修改(屬性已經存在)
obj2.name = ‘’;
刪除
delete obj2.name;
訪問
obj2.name
obj2[‘name’]
var a = ‘name’;
obj[a]
遍歷
for(var key in obj){
key–>屬性名
obj[key]–>對應的屬性值
}
物件方法
var obj = {
name:‘zhangsan’,
age:12,
//放在物件內的函式叫方法
sayName:function(){
console.log(1);
console.log(this.name);// 問:this是什麼?此時this指向誰?this是函式內的一個方法,代表函式得執行環境。this指向函式的執行環境,誰呼叫指向誰。如果沒有呼叫的 就指向全域性環境。
}
};

obj.name
obj.sayName //函式 此時只是訪問了一下這個函式
obj.sayName() //執行obj.sayName函式

function test(){}
test //函式的名字 function

執行函式
函式名()
test()

前後端進行資料互動
前端 js的資料型別 中國話
JSON字串 將前端的物件陣列轉成json字串
JSON.stringify(obj) //將前端的物件陣列轉成json字串
獲取到了後臺給的json字串,需要轉換成前端的物件或者陣列
JSON.parse(jsonStr)

後臺 Java的資料型別 印度話
JSON字串 將後臺的物件或者陣列集合轉成json字串

函式
函式宣告2種方式
1.函式宣告
function test(形參列表){}
2.函式表示式宣告(匿名函式)
var test = function(){}

函式宣告會提升到程式碼最前邊,函式不執行,在呼叫函式的時候,函式執行。
上述並不準確,當var宣告的變數即宣告又初始化,那麼此時變數優先順序高於函式,如果var變數只是宣告或初始化,那麼此時函式的優先順序高於變數。

相關文章