您好,登錄后才能下訂單哦!
歡迎關(guān)注博主的網(wǎng)絡(luò)課堂:http://edu.51cto.com/course/15019.html
<script type="text/javascript">
var obj = new Object();
//動(dòng)態(tài)添加屬性
obj.name="張三";
obj.age = 15 ;
obj["addr"]="銅鑼灣";
obj.sayHello=function(){
console.log("姓名:"+this.name+",年齡"+this.age+",地址:"+this.addr);
}
obj.sayHello();
//動(dòng)態(tài)刪除屬性
delete obj.addr;
obj.sayHello();
</script>
在js中,屬性可以動(dòng)態(tài)添加,也可以動(dòng)態(tài)刪除
json的格式的表現(xiàn)形式
表現(xiàn)形式1
<script type="text/javascript"> var obj={"name":"zhangsan","age":15,"addr":"南京"}; console.log(obj.name,obj.age,obj.addr); console.log(typeof obj); </script>
表現(xiàn)形式2
var obj=["張三",15,true, { "fatherName":"張無(wú)忌", "motherName":"無(wú)忌張", children:["張飛","張亮","張靚穎"] } ]; alert(typeof obj) alert(obj[0]); alert(obj[3]["children"])
案例2:
var obj3= {
"name":"zhangsan",
"age":15,
children:[
{
name:"張一",
age:1
},
{
name:"lisi",
age:10
},
{
name:"wangwu",
age:12
}
],
sayInfo:function(){
console.log(this.name,this.age);
}
};
obj3.sayInfo();
for(var i = 0 ;i<obj3.children.length;i++) {
console.log(obj3.children[i].name,obj3.children[i].age)
}
function createObject(name,age){
var obj = new Object();
obj.name = name ;
obj.age = age
obj.sayHello=sayHello;
return obj ;
}
var sayHello=function(){
console.log(this.name,this.age);
}
var obj1 = createObject("張三",12);
obj1.sayHello();
var obj2 = createObject("李四",20);
obj2.sayHello();
<script type="text/javascript">
function Person(name,age){
this.name = name ;
this.age =age ;
this.sayHello= sayHello;
}
function sayHello(){
console.log(this.name,this.age)
}
//隱藏了一個(gè)創(chuàng)建的對(duì)象的過程
var p1 =new Person("張三",12);
var p2 = new Person("李四",15);
p1.sayHello();
p2.sayHello();
</script>
<script type="text/javascript">
function Person(name,age){
this.name = name ;
this.age = age ;
}
Person.prototype.sayHello = function(){
console.log(this.name,this.age);
}
var p1 = new Person("張三",15);
var p2 = new Person("lisi",16);
p1.sayHello();
p2.sayHello();
</script>
使用原型+構(gòu)造函數(shù)方式來(lái)定義對(duì)象,對(duì)象之間的屬性互不干擾,各個(gè)對(duì)象間共享同一個(gè)方法
優(yōu)化上面的案例
<script type="text/javascript">
function Person(name,age) {
this.name = name ;
this.age = age ;
//第一次創(chuàng)建對(duì)象的,通過參數(shù)給原型上增加一個(gè)共享的方法
if(typeof Person.prototype.flag==="undefined") {
alert("invoked...");
Person.prototype.sayInfo = function(){
console.log(this.name,this.age)
};
Person.prototype.flag = true ;
}
}
var p1 = new Person("zhangsan",12);
var p2 = new Person("lisi",15);
p1.sayInfo();
p2.sayInfo()
</script>
function Parent(name,age) {
this.name= name ;
this.age = age ;
this.sayInfo = function(){
console.log(this.name,this.age) ;
}
}
function Son(name,age,addr) {
this.method=Parent;
this.method(name,age);
this.addr = addr ;
//將自定義的method方法刪除掉
delete this.method;
this.sayInfo=function(){
console.log(this.name,this.age,this.addr) ;
}
}
function Parent(name,age) {
this.name = name ;
this.age = age ;
this.sayInfo=function(){
console.log(this.name,this.age);
};
}
function Son(name,age,addr) {
//call接受的離散的值,apply的參數(shù)為數(shù)組
//Parent.call(this,name,age);
Parent.apply(this,new Array(name,age));
this.addr = addr ;
this.sayInfo=function(){
console.log(this.name,this.age,this.addr);
}
}
var s = new Son("張三",15,"北京");
console.log(s)
s.sayInfo();
<script type="text/javascript">
//apply|call+原型混合方式
function Parent(name,age) {
this.name = name ;
this.age = age ;
}
Parent.prototype.sayInfo=function(){
console.log(this.name,this.age);
}
function Son(name,age,addr) {
//只能做屬性復(fù)制
Parent.apply(this,new Array(name,age));
this.addr = addr ;
}
//拿原型中方法
Son.prototype=new Parent();
var s = new Son("zhangsan",12);
console.log(s)
<script>
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。