ဂျော့တိုပ် အရာ ကိုယ်
အကြိမ်
function Person(first, last, age, eye) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eye; }
ကုသိုလ်ကုံးစံပြုရေး အကြွင်းအဖွဲ့ အမည် အမြင့်တို့ အမြင့်တို့ ဖြင့် အသုံးပြုသည် အကြောင်းကြောင်း
ပေါင်းအချုပ် အမျိုးအစား (အခြေခံ) (ကုသိုလ်ကုံးစံပြုရေး)
အရပ်အချိန်၏ အကြွင်းအဖွဲ့ သည် အခြေခံ အမျိုးအစား အပေါင်းအချုပ် ဖန်တီးနိုင်သည်။ သို့သော် သာ အပေါင်းအချုပ် အပေါင်းအချုပ် ဖန်တီးနိုင်သည်။
အခြေခံ အမျိုးအစား အပေါင်းအချုပ် ဖန်တီးနိုင်ရန် လိုသေးသည်။အခြေခံ”
ပေါင်းအချုပ် အမျိုးအစား ဖန်တီးနိုင်ရန် မူကြမ်း တစ်ခု ဖြင့်ပေါင်းအချုပ် ကုသိုလ်ကုံးစံပြုရေး。
အထက်အချက်အလက် တွင်ပေါင်းအချုပ် ကုသိုလ်ကုံးစံပြုရေး Person() အပေါင်းအချုပ် ကုသိုလ်ကုံးစံပြုရေး ဖြစ်သည်။
ဖြင့် new အကြွင်းအဖွဲ့ အကြွင်းအဖွဲ့ အသုံးပြုသော ကုသိုလ်ကုံးစံပြုရေး ပေါင်းအချုပ် ဖန်တီးနိုင်သည်:
var myFather = new Person("Bill", "Gates", 62, "blue"); var myMother = new Person("Steve", "Jobs", 56, "green");
this အကြွင်းအဖွဲ့
ဂျူနိုက်စ် တွင် အမည်ပြုသော this
အပေါင်းအချုပ် အရာများ သည် ကုသိုလ်ကုံးစံပြုရေး အရာရှိသည်။
this
အသုံးပြုသောအခါ အသုံးပြုသော အကြွင်းအဖွဲ့ သည် အပေါင်းအချုပ် ဖြစ်ပါသည်။
ကုသိုလ်ကုံးစံပြုရေး ပေါ်။this
မရှိသေးသော တန်ဖိုးသည်။ အသစ် အပေါင်းအချုပ် ဖြစ်ပါသည်။ အသစ် အပေါင်းအချုပ် ဖန်တီးခဲ့သောအခါ၊ this အသုံးပြုသော တန်ဖိုး သည် အသစ် အပေါင်းအချုပ် ဖြစ်ပါသည်။
请注意 this
并不是变量。它是关键词。您无法改变 this 的值。
为对象添加属性
为已有的对象添加新属性很简单:
အကြိမ်
myFather.nationality = "English";
新属性被添加到 myFather。不是 myMother,也不是任何其他 person 对象。
为对象添加方法
为已有的对象添加新方法很简单:
အကြိမ်
myFather.name = function () { return this.firstName + " " + this.lastName; };
新方法被添加到 myFather。不是 myMother,也不是任何其他 person 对象。
为构造器添加属性
与向已有对象添加新属性不同,您无法为对象构造器添加新属性:
အကြိမ်
Person.nationality = "English";
如需向构造器添加一个新属性,您必须添加到构造器函数:
အကြိမ်
function Person(first, last, age, eyecolor) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eyecolor; this.nationality = "English"; }
这样对象属性就可以拥有默认值。
为构造器添加方法
您的构造器函数也可以定义方法:
အကြိမ်
function Person(first, last, age, eyecolor) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eyecolor; this.name = function() {return this.firstName + " " + this.lastName;}; }
与向已有对象添加新方法不同,您无法为对象构造器添加新方法。
သင်သည် အကြီးအကဲသည့် အဆိုပါ အပိုင်း တွင် အမှု သို့မဟုတ် အကြွေးကြွေး တွင် အသုံးပြုသည်။
အကြိမ်
function Person(firstName, lastName, age, eyeColor) { this.firstName = firstName; this.lastName = lastName; this.age = age; this.eyeColor = eyeColor; this.changeName = function (name) { this.lastName = name; }; }
changeName() သည် ပုဂ္ဂိုလ်၏ lastName သည့် အကို သတ်မှတ်သည်။
现在您可以试一试:
myMother.changeName("Jobs");
通过用 myMother
替代 this,JavaScript 可以获知目前处理的哪个 person。
内建 JavaScript 构造器
JavaScript 提供用于原始对象的构造器:
အကြိမ်
var x1 = new Object(); // 一个新的 Object 对象 var x2 = new String(); // 一个新的 String 对象 var x3 = new Number(); // 一个新的 Number 对象 var x4 = new Boolean(); // 一个新的 Boolean 对象 var x5 = new Array(); // 一个新的 Array 对象 var x6 = new RegExp(); // 一个新的 RegExp 对象 var x7 = new Function(); // 一个新的 Function 对象 var x8 = new Date(); // 一个新的 Date 对象
Math()
对象不再此列。Math 是全局对象。new
关键词不可用于 Math。
您知道吗?
正如以上所见,JavaScript 提供原始数据类型字符串、数字和布尔的对象版本。但是并无理由创建复杂的对象。原始值快得多!
ပြီးအပြီး ပုဂ္ဂိုလ် အပေါ် အသုံးပြုပါ {}
အလို new Object()
。
ပြီးအပြီး ပုဂ္ဂိုလ် အပေါ် အသုံးပြုပါ ""
အလို new String()
。
ပြီးအပြီး ပုဂ္ဂိုလ် အပေါ် အသုံးပြုပါ Number()
。
ပြီးအပြီး ပုဂ္ဂိုလ် အပေါ် အသုံးပြုပါ new Boolean()
。
ပြီးအပြီး ပုဂ္ဂိုလ် အပေါ် အသုံးပြုပါ []
အလို new Array()
。
ပြီးအပြီး ပုဂ္ဂိုလ် အပေါ် အသုံးပြုပါ new RexExp()
。
ပြီးအပြီး ပုဂ္ဂိုလ် အပေါ် အသုံးပြုပါ () {}
အလို new Function()
。
အကြိမ်
var x1 = {}; // အသစ် အဖွဲ့ var x2 = ""; // မှီချမ်းသား အခြေခံ အကြောင်း var x3 = 0; // မှီချမ်းသား အတိုင်း var x4 = false; // မှီချမ်းသား အခြေခံ အတိုင်း var x5 = []; // 新的数组对象 var x6 = /()/ // 新的正则表达式对象 var x7 = function(){}; // 新的函数对象
字符串对象
通常,字符串被创建为原始值:var firstName = "Bill"
但是也可以使用 new
关键词创建字符串对象:var firstName = new String("Bill")
请在 JS 字符串这一章中学习为何不应该把字符串创建为对象。
数字对象
通常,数值被创建为原始值:var x = 456
但是也可以使用 new
关键词创建数字对象:var x = new Number(456)
请在 JS 数字这一章中学习为何不应该把数值创建为对象。
布尔对象
通常,逻辑值被创建为原始值:var x = false
但是也可以使用 new
关键词创建逻辑对象:var x = new Boolean(false)
请在 JS 逻辑这一章中学习为何不应该把逻辑值创建为对象。