JavaScript原型
程序员文章站
2024-01-06 16:43:52
js原型 js每声明一个function,都有prototype原型,prototype原型是函数的一个默认属性,在函数的创建过程中由js编译器自动添加。 也就是说:当生产一个function对象的时候,就有一个原型prototype。 例如: prototype的属性值是一个对象,是属性的集合,是 ......
js原型
js每声明一个function,都有prototype原型,prototype原型是函数的一个默认属性,在函数的创建过程中由js编译器自动添加。
也就是说:当生产一个function对象的时候,就有一个原型prototype。
例如:
prototype的属性值是一个对象,是属性的集合,是属性的集合,是属性的集合
例如:
function person(name,age){
this.name=name;
this.age=age;
}
person.prototype.sayhello=function(){
alert("使用原型得到name:"+this.name);
}
var per=new person("alin",21);
per.sayhello(); //输出:使用原型得到name:alin
在函数person里面自定义了属性name和age,而prototype是我们的属性集合,也就是说,我要添加sayhello这个属性到person,则要这样写:person.prototype.sayhello,就能添加person的属性。
(我们可以简单的把prototype看做是一个模板,新创建的自定义对象都是这个模板prototype的一个拷贝,其实准确来说,不应该说是一个拷贝,而是一个连接,只不过这种链接是不可见,新实例化的对象内部有一个看不见的_proto_指针,指向原型对象)
使用原型来优化代码:
普通code:
function add(x,y){ return x+y; } function subtract(x,y){ return x-y; } console.log(add(1,3));
使用原型优化后的两种代码:
第一种:
var calculator = function(){ }; calculator.prototype = { add:function(x,y){ return x+y; }, subtract:function(x,y){ return x-y; } };
第二种:
var calculator = function () {}; calculator.prototype = function(){ add = function(x,y){ return x+y; }, subtract = function(x,y){ return x-y; } return{ add:add, subtract:subtract } }(); console.log((new calculator()).add(1,3));
目的:封装私有的function,通过return的形式暴露出简单的使用名称,以达到public/private的效果。
推荐阅读
-
JavaScript原型
-
javascript - 怎样更方便地记录点击次数?
-
php 或者 JavaScript 如何调用指定的打印机来打印(局域网内)
-
手机平板等移动端适配跳转URL的js代码_javascript技巧
-
javascript Array.sort() 跨浏览器下需要考虑的问题_javascript技巧
-
js form 验证函数 当前比较流行的错误提示_javascript技巧
-
jQuery对象和Javascript对象之间转换的实例代码_jquery
-
javascript匀速动画和缓冲动画详解
-
JavaScript队列函数和异步执行详解
-
Javascript和HTML5利用canvas构建Web五子棋游戏实现算法_javascript技巧