javascript 创建对象方式

前端开发 作者: 2024-08-25 20:45:01
本文主要是对《JavaScript高级程序设计》第六章(面向对象的程序设计)的总结,书上的这章至少看了4遍是有的。该章主要讲对象的创建与继承。其中创建对象和继承方式至少6种,再加上一些方法属性,很容易

1创建对象

1 var o = {a: 1};
2 var o2=new Object();
3       o2.a=1;
function parent(name,age){  
    var  Child =  Object();  
    Child.name=name;  
    Child.age=age;  
    Child.sayHi=(){
        console.log("Hi");
    }  
    return Child;  
};  

var x = Parent("Tom",12);  
    console.log(x.name);  //Tom
    x.sayHi();  Hi
 Parent(name,1)">this.name=name;  
    this.age=age;  
    this.sayHi=);
    };   
}

var x = new Parent("Tom",1)">Hi
  • 没有显示地创建对象;
  • 直接将属性和方法赋给了this对象;
  • 没有return语句。
name;  
    Parent.prototype.age=age;  
    Parent.prototype.sayHi=Hi
age; 
    Parent.prototype.arr=["123","we"]; 
    Parent.prototype.sayHi=);  
var y = new Parent("Tom1",1)">); 

    x.arr.push("x");
    y.arr.push("y"); 

    console.log(x.arr);["123","we","x","y"]
    console.log(y.arr);
//只把属性留在这里定义,方法放在原型对象中 
    this.name=name;  
    this.age=age;  
}

第一种方式
Parent.prototype.sayHi=(){
    console.log("Hi");
};   

第二种方式
//由于采用对象字面量,因此必须修正其constructor属性;
Parent.prototype={
    constructor:Parent,sayHi:);
    }  
}

Hi
age;  
    if( typeof this.sayHi !="function"){
        Parent.prototype.sayHi=(){
            console.log("Hi");
        };  
    }
}

Hi
Hi
var o= Object();
   //私有变量或者方法
var name=name,age=age; o.sayName=(){
     //name前面没有this console.log(name
+" "+age) } o; } ); x.sayName(); Tom 12
原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_68592.html