javascript ------->this 和json

weixin_33858249發表於2017-10-30

<!doctype html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>this+json</title>

<script type="text/javascript">



/* js:建構函式傳參---------->能定義私有屬性嗎?類中怎麼定義函式。有靜態類嗎?

function  Person(name,age){

this.name= name;

this.age = age;

}

var p1 = new Person("張三",18);

var p2 = new Person("李四",20);

在構造器中定義形參,例項化物件時,通過建構函式傳遞資料。

java:

class person{

private String name;

private int    age ;

   public Person(){

   }

   public Person(String name,int age){

this.name = name;

this.age  = age;

   }

   public String getName(){

return name;

   }

   public void   setName(String name){

this.name = name;

   }

   public String getAge(){

return age;

   }

   public void   setName(int age){

this.age = age;

   }

}

在主函式中呼叫;

Person    p  = new Person("張三",18);

Person    2  = new Person("李四",18);


*/

/* this 的深入理解

》》》》js中函式都是由物件呼叫起來的。《《《《《


this,誰呼叫這個函式,this就指向誰。


js中所有函式都是物件導向的。普通函式是window物件在呼叫它。

function start(){

alert("Hello World");

return true;

}

 //結果是一樣的。

 alert(start());    

 alert(this.start());

 alert(window.start());

*/

</script>

<script type="text/javascript">

/*

 * json物件的使用。

  一 : 什麼是json,

  物件是指屬性的無序集合。

  一個物件擁有若干個屬性。

  '集合'-->是 名/值 對的集合。

  js中可以用{}來表示.

  語法:(屬性名建議用''/""-->安全性)

  {'屬性名1':屬性值,'屬性名2':屬性值,...}

  這樣建立出來的物件叫做json物件。

  二:建立json物件

  var json ={'name':'張三','age':'28'};

  alert(json.name);

  三:使用json儲存多個資料

  function  Person(name,age){

this.name= name;

this.age = age;

}

var p1 = new Person("張三",18);

var p2 = new Person("李四",20);

//使用json儲存多個物件

var json={

"p1":p1,

"p2":p2

};

console.log(json);

console.log(json.p1.name);

----------------遍歷--------------------------

for(arr in json){

for(son in json[arr]){

console.log(json[arr][son]);

}

}

//定義一個json陣列

   var arr=[{'name':'張三','age' :'18'},{'name':'李四','age' :'18'},{'name':'王五','age' :'18'}];

   console.log(arr);

console.log(arr[2].name);

----------------遍歷--------------------------

for(var i=0;i<arr.length;i++){

for(a in arr[i]){

console.log(arr[i][a]);

}

}

   四:json究竟是什麼?

   var json ={'name':'張三','age':'28'};

    alert(typeof json);   ---------->object

alert(json.constructor);--------------->function Object(){[natice code]}

json是一個物件

json是一個object類下的一個物件

 json物件和構造器物件有各自有什麼特點和使用場景!

 json物件:

    簡化了構造器的定義。

   場景: 程式只需要一個這樣的物件(工具類)

 構造器物件:

  簡化了屬性的定義

   場景: 程式需要多個相同屬性和方法的物件(使用者類)

 五:json中的成員函式

類中定義函式

    function  Person(name,age){

this.name= name;

this.age = age;

this.eat = function(){

alert(this.name+"吃飯");

}


}

var p1 = new Person("張三",18);

p1.eat();

java:

class Person{

public String name;

public int     age;

public void eat(){

 system.out.print(this.name+"正在吃飯");

}

}

json中定義函式

 var json ={'name':'張三','age':'28','eat':function(){

  alert(this.name+'吃飯');

 }};

 json.eat();

六:PHP中如何傳遞json

1:生成json  

 string  json_encode($obj|$user);

 A)從陣列中生成json

$user = array('name'=>'張三','age'=>30);

$str  = json_encode($user);

echo $str;

B)從物件中生成json

  class Person{

public $name;

public $age;

  }

  $p1 =new Person();

  $p1->name="lisi";

  $p1->age = 18;

  $str = json_encode($p1);

  echo $str;

2:解析json

json_decode($jsonstr,$flag);//預設解析為物件

$flag  true:解析為陣列

       false:解析為物件

    $user = array('name'=>'張三','age'=>30);

$str  = json_encode($user);

echo $str;

echo "<pre>";

var_dump(json_decode($str,true));

*/

</script>

</head>

<body>

</body>

</html>


本文轉自 沉迷學習中 51CTO部落格,原文連結:http://blog.51cto.com/12907581/1926407,如需轉載請自行聯絡原作者

相關文章