js面向对象的成员函数
来源:互联网 发布:刺客信条mac版 编辑:程序博客网 时间:2024/05/29 15:43
如果我们希望某个对象创建后,自动有方法使用,可以在定义类的时候,直接指定成员函数
第一种方法: 动态的给某个对象指定函数
function Person(name,age)
{ this.name=name;
this.age=age; }
//第一种方法,动态添加
function speak()
{ document.write("我是"+this.name); }
//创建一个对象实例
var p1=new Person("大黄",90);
p1.fun1=speak; //相当于动态的给p1对象分配一个fun1属性(函数);
你可以理解, fun1 是 speak函数别名
window.alert(p1.fun1);
p1.fun1();
speak(); //window
第一种方法还有一种体现形式
//创建一个对象实例
var p1=new Person("大黄",90);
p1.fun1=function speak()
{ document.write("我是"+this.name); };
//相当于动态的给p1对象分配一个fun1属性(函数);
第二种方法: 让所有的Person对象实例都有某个成员函数
//给所有对象分配函数
function Person(name,age)
{ this.name=name;
this.age=age;
this.speak=function ()
{document.write(this.name+"hello"); }
}
var p1=new Person("小孩",9);
p1.speak();
var p2=new Person("大明",30);
p2.speak();
☞ 关于给对象指定成员函数说明:
如果添加的内部函数,该函数也称为特权函数, 所谓特权指的是可以访问对象的私有属性.
如果添加的是外部函数(给某个对象指定的函数),则这样指定函数,只能访问对象的公开属性,不能访问私有属性.
function Person(name,age,salary)
{ this.name=name;//公开
this.age=age;//公开
var salary=salary;//私有 }
var p1=new Person("宋江",34,1000);
function showInfo()
{ document.write(this.name+this.age+salary);//这里salary是私有 }
p1.showInfo=showInfo;
p1.showInfo();
一个类中可以有公开的函数
this.属性=funciton (){};
一个类中也可以有私有的函数
代码:
function Person()
{ this.name="abc";
var salary=900;
this.fun1=function ()
{ //代码
sayHello(); }
this.fun2=function()
{ sayHello(); }
this.fun3=function()
{ sayHello(); }
function sayHello()
{ document.write("hello,资源打开"+this.name+" "+salary); }
}
var p1=new Person();
p1.fun2();
小结: 通过代码我们可以看出.私有函数可以被 该类的其它方法(公开)调用,
同时私有函数可以去访问 该对象的 公开或者私有的属性.
小结: 通过代码我们可以看出.私有函数可以被 该类的其它方法(公开)调用,同时私有函数可以去访问 该对象的 公开或者私有的属性.
第三种方式给所有的对象实例添加方法(原型法)[推荐..]
function Dog()
{ /* this.shout=function ()
{ document.write("小狗汪汪叫"); }*/ }
//原型法
Dog.prototype.shout=function ()
{ document.write("小狗叫"); }
var dog1=new Dog();
dog1.shout();
对我们原型法的一个实际运用:
/*
请思考给 js 的 Array 对象扩展一个find(val) 方法 ,当一个Array对象调用该方法的时候,
如果能找 到val则返回其下标,否则返回-1
*/
Array.prototype.find=function(val)
{ //顺序查找 for(var i=0;i<this.length;i++)
{ if(val==this[i]){ flag=true; return i; }
}
return -1; }
var arr=[4,590,-1,890];
window.alert(arr.find(890));
自定类的工厂方法(了解即可)
当你编写 js 代码时,当你需要一个对象时,可以通过new Object 来创建一个对象,
然后再动态的给该对象添加属性和方法.
//工厂法创建对象
var obj=new Object();
obj.name="大明";
obj.show=function (val)
{ window.alert("ok"+val); }
obj.show("hello");
Number类
var i=90;
var res=i.add(78).add(90).add(900).add(9000)
window.alert(res);
- js面向对象的成员函数
- js_day15--js面向对象编程+this关键字+成员函数
- java面向对象-多态中成员函数成员变量的特点
- js--面向对象--构造函数的继承
- 【C++面向对象】C++中成员函数的const属性
- 12-面向对象(继承-子父类中成员函数特点-覆盖) 13-面向对象(继承-子父类中成员函数特点-覆盖的应用
- c++ 面向对象编程 成员函数调用
- C++ 面向对象编程 友元类成员函数
- C++面向对象小结--静态成员函数
- 面向对象编程之成员函数
- C++面向对象—成员函数与成员变量的实现机制学习笔记(1)
- JS函数与面向对象
- JS函数与面向对象
- js面向对象: 有名函数和无名函数的区别
- 面向对象的js
- js的面向对象
- 面向对象的js
- js的面向对象
- 51Nod 1315 合法整数集
- linux 学习点四
- 清除缓存
- c语言的结构体、共用体、枚举
- protobuf编译
- js面向对象的成员函数
- 关于锋利的jQuery中toggle方法的一个版本问题
- 第十三周项目2-Kruskal算法的验证
- android light 子系统
- 无线传感网——近距离通信技术
- jar包生成及使用
- 数位DP模板
- 打开Promise的正确姿势
- Java多线程的安全