首页 > 代码库 > Javascript进阶(4)---几种特殊情况分析
Javascript进阶(4)---几种特殊情况分析
情况一
function AAA(){ this.say = "haha"; }AAA.ownPro = "own";var obj = new AAA();console.log(obj.say); //"haha"console.log(obj.own); //undefinedconsole.log(AAA.ownPro); //"own"
情况二
var Person = function (){ this.pro= "qqq"; this.sayword = function (){ return 789; };}var Carl = new Person ();console.log (Carl.pro); //"qqq"Person.prototype.newPro = 123;console.log(Person.sayword); //undefined 这里表示访问的是私有属性,并不是function里面this声明的公有属性console.log(Carl.newPro); //123console.log(Carl.sayword); // function(){return 789;}
情况三
function obj(){ var a = 444; this.b = 456; c = function (){ var q = 123; } d=456; obj.e=741;}var new_obj = new obj();console.log(new_obj.a); //undefinedconsole.log(new_obj.b); //456 访问使用this定义的公共属性console.log(new_obj.c); //undefinedconsole.log(new_obj.d); //undefinedconsole.log(new_obj.e); //undefinedconsole.log(obj.a); //undefinedconsole.log(obj.b); //undefinedconsole.log(obj.c); //undefinedconsole.log(obj.d); //undefinedconsole.log(obj.e); //741
- 定义一个函数之后,通过“ . ”号为其添加的属性和函数,通过自身可以访问到 obj.e, 但是这个函数创建出来的实例却访问补刀,我们将这种属性称之为静态变量、活着是静态属性
情况四
function obj() { this.a = 123; this.b = 456; this.c = function(){ return 1234; } }var obj1 = new obj();obj1.a = 456;obj1.c = {};//检查是否修改成功console.log(obj1.a); //456console.log(obj1.c); //Objectvar obj2 = new obj(); //检查是否修改成功console.log(obj2.a); //123console.log(obj2.c); //function(){ return 1234;}
- 结果可见obj1的属性修改对obj2中的属性完全无影响,也就是说obj1与obj2中的属性虽同名但不是一个引用
Javascript进阶(4)---几种特殊情况分析
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。