js中构造函数的相关知识点

首先大家需要先明白几个概念,我也是踩过几个坑才发现构造函数并不是我们所想的那么简单的,

公有属性:就是构造函数的时候this所指向的那个属性,这是为了让所有实现这个构造函数的实例都能有的属性;

公有方法:同上。

私有属性:就是构造函数中通过var xx;所声明的那个属性,为何叫私有呢,因为他是在构造函数所在的作用域内声明的,因此叫做私有;

私有方法:同上私有属性的理解;

静态属性和静态方法(其实我是感觉很奇葩的):通过调用  构造函数名.xxx 实现的属性和方法,这个方法区别于私有属性和方法的最大区别就是这静态的不能被实例所拥有,但是私有却可以能被拥有。

对照着demo,自己去理解吧!

ps:前几天开发中遇到一个小问题,搞了半天是自己对作用域链有误解:每个函数都有自己的作用域,运行的时候都会产生各自的作用域链,二构造函数呢,当我们构造新对象的时候,构造函数把自己的作用域赋给了新对象,如果我们在构造函数中调用新对象作用域内的变量是不可能访问到的!!!

ps:http://blog.csdn.net/zzulp/article/details/8144520

http://www.cnblogs.com/jikey/archive/2011/05/13/2045005.html

给个demo:function my(msg){

     this.myMsg = msg; //只在被实例化后的实例中可调用
     var age = 29;
     function aged(){
         alert(that.name);
     }

this.sayAge = function(){
         alert(age); //在公有方法中可以访问私有成员
     }
 }

myObject.prototype.sayHello = function(){
     alert(‘hello everyone!‘);
 }

my.name = ‘china‘;
 //静态方法
 my.alertname = function(){
     alert(this.name);
 }
 //实例化
 var m1 = new my(‘111‘);

理解构造函数的几种方式没必要多说,理解以及用好了组合构造函数就够了,不过这里有一点需要提醒自己,就是高级技巧,特别是在单例模式和构造函数的方法的时候有用,还有以防构造函数被全局window。直接调用!!

时间: 2024-10-20 17:26:52

js中构造函数的相关知识点的相关文章

JS中字符串的相关操作

(转自:http://www.cnblogs.com/zhaoxinxin/articles/1402733.html) 一.字符串的创建 创建一个字符串有几种方法. 最简单的是用引号将一组字符包含起来,可以将其赋值给一个字符串变量. var myStr = "Hello, String!"; 可以用双引号或单引号将字符串包含,但要注意,作为界定字符串的一对引号必须是相同的,不能混用. 像var myString = "Fluffy is a pretty cat.'; 这样

JS中构造函数与普通函数的区别及JS构造函数、原型和实例的关系

JS中构造函数与普通函数的区别: https://www.cnblogs.com/cindy79/p/7245566.html JS构造函数.原型和实例的关系: https://blog.csdn.net/u012443286/article/details/78823955 JavaScript构造函数及原型对象: https://blog.csdn.net/a153375250/article/details/51083245 原文地址:https://www.cnblogs.com/jim

js中scroll滚动相关

js中scroll滚动相关 scroll,滚动,一般讨论的是网页整体与浏览器之间的关系. 一.元素相关 属性/方法 解释 element.scrollHeight 返回元素的整体高度. element.scrollWidth 返回元素的整体宽度. element.scrollLeft 返回元素左边缘与视图之间的距离. element.scrollTop 返回元素上边缘与视图之间的距离. 这四个属性,全部是只读属性 其中,无非就是分为宽高和左上. 两个方向. 1.scrollHeight 和 sc

js中构造函数的原型添加成员的两种方式

首先,js中给原型对象添加属性和方法. 方式一:对象的动态特效 给原型对象添加成员 语法:构造函数.prototype.方法名=function (){ } 方式二:替换原型对象(不是覆盖,而是替换,把原先的同名的直接替换成现在的) 语法:构造函数.prototype.方法名={ } tips:方式二不常用,因为这样会修改了原型本身 搜索:JS中通过构造函数添加成员方法和通过原型法添加成员方法的区别 参考网址  http://blog.csdn.net/xxmzumeng/article/det

js中数组字符串相关

1.字符串转数组 var s = "abc,abcd,aaa";ss = s.split(",");// 在每个逗号(,)处进行分解. 2.数组转字符串 var a, b;a = new Array(0,1,2,3,4);b = a.join(","); 3.查询数组中是否包含某元素 var num=jQuery.inArray(value, array); 解释:返回value在数组中的位置,从0开始计数(如果没有找到则返回 -1 ). 4.j

分享一些js中常用的小知识点

上一篇被退回了,不过没关系.接着分享 主要是几个常用的js知识点.因为之前说过js基础很差. 1:获取class中的input值 结果显示为 用的是jquery的写法.这里一起区分了一下jquery DON操作中的获取内容的三个方法. text()      html()      val() 先说一下val ()   目前遇到的只用于获取表单字段的值 text()和html()用的比较多,因为比如在动态页面的拼接中会用到,或者获取你选择的元素的文本内容,但是html()会返回连同html标记在

原生JS中DOM节点相关API合集

节点属性 Node.nodeName //返回节点名称,只读 Node.nodeType //返回节点类型的常数值,只读 Node.nodeValue //返回Text或Comment节点的文本值,只读 Node.textContent //返回当前节点和它的所有后代节点的文本内容,可读写 Node.baseURI //返回当前网页的绝对路径 Node.ownerDocument //返回当前节点所在的顶层文档对象,即document Node.nextSibling //返回紧跟在当前节点后面

js 中对象--属性相关操作

查询属性: 可以用 对象.属性 来查询属性和属性方法               或者                    对象[“属性”]  来查询属性和属性方法 演示代码: 1 <script> 2 var obj ={ 3 username:"ziksang", 4 age:22, 5 addr:"北京", 6 say:function(){ 7 return "我的名字叫 "+this.username //解析this,此

JS中构造函数与函数

//构造函数中,如果返回的是一个对 象,那么就保留原意. 如果返回的是非对象,比如数字.布尔和字符串,那么就返回 this,如果没有 return 语句,那么也返回this. var myFun1 = function(){                        this.name = "LiuYashion1";            self1 = this;            return 'BOY'                    } var myFun2 =