复制代码 代码如下:
<script language="javascript" type="text/javascript">
//(1)把一个方法变成一个对象,为对象创建方法和属性
var Name = function () {
//通过prototype给一个对象创建方法
Name.prototype.Add = function (num, title) {
}
//也可以直接用this加方法名为对象创建方法和上面的等价
this.Way = function (str) {
}
//为对象添加属性值
Name.prototype.xing = "123";
//定义静态属性和方法
Name.shi = "static";
Name.Addd = function (num, title) {
}
//静态定义的局部属性和方法只能在静态的类型里面用
alert(Name.shi);
Name.Addd(1, 2);
}
//方法也可以这样声明
function Name1() {
Name1.prototype.add = function () { }
this.way = function () { }
Name1.prototype.shu = "other";
}
//静态定义的全局属性和方法通用
Name.sha = "static";
Name.Addd2 = function () {
}
alert(Name.sha); //调用静态属性
Name.Addd2(); //调用静态方法
var name = new Name();
name.Add(); //对象调用方法
name.Way();
alert(name.xing); //对象调用属性
/*静态的全局变量,在方法外可以调用;静态的局部变量和方法仅限于方法内使用;实例对象不能调用静态的方法 */
/*实例对象不能使用prototype; */
//(2)Javascript面向对象 继承
//父类
function Class() {
this.name = "name";
this.method = function () {
alert("method");
}
}
//子类
function Class1() {
this.name1 = "name1";
this.method1 = function () {
alert("method1");
}
}
//子类继承父类
Class1.prototype = new Class();
var obj = new Class1();
alert(obj.name);
alert(obj.name1);
obj.method();
obj.method1();
/****** 子类继承父类的语法,子类.prototype=new 父类(); *****/
//(3)子类重写父类
//子类
function Class2() {
this.name2 = "name2";
this.method2 = function () {
alert("method2");
}
}
Class2.prototype = new Class(); //继承
Class2.prototype.name = "updateName"; //重写父类的属性
Class2.prototype.method = function () {//重写父类的方法
alert("UpdateMethod");
}
var obj2 = new Class2();
alert(obj2.name); //显示updateName
obj2.method(); //显示UpdateMethod
alert(obj2.name2);
obj2.method2();
//(4){}里面的为对象
var arr = new Array();
arr.push({ "name": "1", "age": 12, funA: function () { } });
arr.push({ "name": "2", "age": 13 });
arr.push({ "name": "3", "age": 14 });
for (var i = 0; i < arr.length; i++) {
alert(arr[i].name);
alert(arr[i].age);
alert(arr[i].funA());
}
/****一个对象也可以这么定义***/
var newObject = {
"name": "Jim",
"sex": "Man",
Way: function () { }
};
</script>
<script language="javascript" type="text/javascript">
//(1)把一个方法变成一个对象,为对象创建方法和属性
var Name = function () {
//通过prototype给一个对象创建方法
Name.prototype.Add = function (num, title) {
}
//也可以直接用this加方法名为对象创建方法和上面的等价
this.Way = function (str) {
}
//为对象添加属性值
Name.prototype.xing = "123";
//定义静态属性和方法
Name.shi = "static";
Name.Addd = function (num, title) {
}
//静态定义的局部属性和方法只能在静态的类型里面用
alert(Name.shi);
Name.Addd(1, 2);
}
//方法也可以这样声明
function Name1() {
Name1.prototype.add = function () { }
this.way = function () { }
Name1.prototype.shu = "other";
}
//静态定义的全局属性和方法通用
Name.sha = "static";
Name.Addd2 = function () {
}
alert(Name.sha); //调用静态属性
Name.Addd2(); //调用静态方法
var name = new Name();
name.Add(); //对象调用方法
name.Way();
alert(name.xing); //对象调用属性
/*静态的全局变量,在方法外可以调用;静态的局部变量和方法仅限于方法内使用;实例对象不能调用静态的方法 */
/*实例对象不能使用prototype; */
//(2)Javascript面向对象 继承
//父类
function Class() {
this.name = "name";
this.method = function () {
alert("method");
}
}
//子类
function Class1() {
this.name1 = "name1";
this.method1 = function () {
alert("method1");
}
}
//子类继承父类
Class1.prototype = new Class();
var obj = new Class1();
alert(obj.name);
alert(obj.name1);
obj.method();
obj.method1();
/****** 子类继承父类的语法,子类.prototype=new 父类(); *****/
//(3)子类重写父类
//子类
function Class2() {
this.name2 = "name2";
this.method2 = function () {
alert("method2");
}
}
Class2.prototype = new Class(); //继承
Class2.prototype.name = "updateName"; //重写父类的属性
Class2.prototype.method = function () {//重写父类的方法
alert("UpdateMethod");
}
var obj2 = new Class2();
alert(obj2.name); //显示updateName
obj2.method(); //显示UpdateMethod
alert(obj2.name2);
obj2.method2();
//(4){}里面的为对象
var arr = new Array();
arr.push({ "name": "1", "age": 12, funA: function () { } });
arr.push({ "name": "2", "age": 13 });
arr.push({ "name": "3", "age": 14 });
for (var i = 0; i < arr.length; i++) {
alert(arr[i].name);
alert(arr[i].age);
alert(arr[i].funA());
}
/****一个对象也可以这么定义***/
var newObject = {
"name": "Jim",
"sex": "Man",
Way: function () { }
};
</script>
标签:
prototype,面向对象
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
狼山资源网 Copyright www.pvsay.com
暂无“JS中的prototype与面向对象的实例讲解”评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。