手机版

Javascript人脸图像对象成员和共享成员变量实验

时间:2021-10-21 来源:互联网 编辑:宝哥软件园 浏览:

1)Javascript对象成员实验:复制代码如下:var f=function d () {this。a=' a/*这句话说完就没有f.a或d.a了。有一个窗口. a */var b=' b ';/*局部变量*/};var o={ ff : function(){ var a=' a ';/*局部变量*/this . b=' b ';/*这句话运行后有o . b */} };函数Man(){ this . age=30;};man . prototype . sex=1;man . prototype . name=function(){ };调试器;/*第一个断点*/f();o . ff();var m=new Man();调试器;/*第二个断点*/第一个断点处对象成员的存在:

第二个断点处存在对象成员:

底线:关于js函数:这是指函数外最近一层的对象,而嵌套函数内部函数中的这个是指窗口对象。底线:js的oo特性:用这个。用于定义对象成员的成员具有js特定的动态持久性,并且类不同于对象实例,而。原型。成员定义成员是经典的定义,类和对象实例是统一的。2)Javascript对象共享成员变量实验:复制代码如下:函数ghost (_ name) {this。name=_ namethis.age=1000} ghost . prototype . setname=function(_ name){ this . name=_ name;}功能Man(_ name){ this . age=30;This.ghost=new Ghost('实例变量' _ name);};man . prototype . mang host=new ghost('共享变量');var a=新人(' a ');var b=新人类(' b ');AMG=a.mangost.setname('我只设置了A的共享变量');调试器;/*第一个断点*/var ag=a . ghost;var bg=b.ghostvar bmg=b . ManGhost调试器;/*第二个断点*/运行到第一个断点:

简单变量和对象变量之间的区别在于使用了由。原型。如果成员是一个简单的变量,每个对象实例都有自己的副本。(示例:Man.prototype.noObejctVar)使用由定义的成员。原型成员是一个对象变量,每个对象实例将共享同一个对象副本。(例子:Man.prototype.ManGhost)为什么会有这样的区别?定义的成员之间没有区别。原型。来自mangost变量和noObjectVar变量,但是它们的类型不同,这意味着它们以不同的方式访问和使用它们,但是mangost变量存储新的对象,而noObjectVar变量存储值(或者对某个值的引用)。换句话说,ManGhost存储了一个对对象的引用,这个引用可以操作这个对象,noObjectVar变量存储了一个值引用,但是它不能被这个引用操作。从另一个角度来看,noObjectVar变量存储对字符串对象的引用。a.noObjectVar='新字符串a ';这意味着noObjectVar从原始存储的字符串对象引用中引用一个新的字符串对象引用。(也可以说新的字符串对象覆盖了原来的字符串对象)a . ManGhost=new Ghost(' a ');b . ManGhost=新Ghost(' b ');这样,A和b之间就不存在共享对象的问题,然而,还有另一个问题。原型化时定义新对象是浪费。使用了ManGhost。然而,使用它是错误的。原型定义成员函数和共享变量是正确的用法。使用javascript正确定义类,请参考:【技术备忘录】javascript定义类规范。

版权声明:Javascript人脸图像对象成员和共享成员变量实验是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。