JS中的实例方法与静态方法
2016-04-06 22:27
501 查看
一、静态方法与实例方法的例子:
我们先来看一个例子来看一下JS中的静态方法和实例方法到底是什么
静态方法:
function A(){}
A.sayMeS=function(){
console.log("Hello World S!");
}
A.sayMeS();//输出Hello World S!
实例方法:
function A(){}
A.prototype.sayMeE=function(){
console.log("Hello World E!");
}
var a=new A();
a.sayMeE();//输出Hello World E!
二、二者的区别:
从定义上,实例方法要用到function这个对象中的prototype属性来定义,静态方法通过A.直接定义;从方法调用上,静态方法可以直接通过A.来调用,实例方法要通过先定义一个引用变量,指向构造函数定义的新对象。
我们之前的博文已经讨论过JS对象、构造函数、原型(参看Js中的对象、构造函数、原型、原型链及继承),这里加深一下理解,我们之前已经说过函数是一个对象,函数对象中的属性 prototype可以想成一个指针,指向一个方法(这样不用每一次用构造函数创造一个新实例后都要将方法重新创建一遍)。这样就好理解了,var
a是A的一个引用,也就是指针,a就可以指向sayMeE这个方法,如果直接A.sayMeE()是会报错的,因为A不是一个指针,a.sayMeS()也会报错,因为a不是一个方法对象。
三、再谈继承:
继承举例:
function A(){
}
A.prototype.sayMeE=function(){
console.log("Hello World E!");
}
function B(){
}
B.prototype=new A();//实现了继承
继承就是将B的指针指向A对象,这种形式是用A的构造函数来构建对象。
我们先来看一个例子来看一下JS中的静态方法和实例方法到底是什么
静态方法:
function A(){}
A.sayMeS=function(){
console.log("Hello World S!");
}
A.sayMeS();//输出Hello World S!
实例方法:
function A(){}
A.prototype.sayMeE=function(){
console.log("Hello World E!");
}
var a=new A();
a.sayMeE();//输出Hello World E!
二、二者的区别:
从定义上,实例方法要用到function这个对象中的prototype属性来定义,静态方法通过A.直接定义;从方法调用上,静态方法可以直接通过A.来调用,实例方法要通过先定义一个引用变量,指向构造函数定义的新对象。
我们之前的博文已经讨论过JS对象、构造函数、原型(参看Js中的对象、构造函数、原型、原型链及继承),这里加深一下理解,我们之前已经说过函数是一个对象,函数对象中的属性 prototype可以想成一个指针,指向一个方法(这样不用每一次用构造函数创造一个新实例后都要将方法重新创建一遍)。这样就好理解了,var
a是A的一个引用,也就是指针,a就可以指向sayMeE这个方法,如果直接A.sayMeE()是会报错的,因为A不是一个指针,a.sayMeS()也会报错,因为a不是一个方法对象。
三、再谈继承:
继承举例:
function A(){
}
A.prototype.sayMeE=function(){
console.log("Hello World E!");
}
function B(){
}
B.prototype=new A();//实现了继承
继承就是将B的指针指向A对象,这种形式是用A的构造函数来构建对象。
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- Python动态类型的学习---引用的理解
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 最后一次说说闭包
- Ajax
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解