- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试密封一个对象属性。
我的问题是,这里我给出了 Object.seal(personObject),这个特定的对象是密封的,不允许在这个对象中配置或进行任何扩展,但由于我没有提到 personObject_2 它确实允许扩展或配置
我怎样才能在原型(prototype)上实现它。我的意思是像任何类型的人都应该拥有/尊重这个印章。我们可以实现这样的行为
"use strict";
var personModule=(function (module) {
var person=function (fname,lname) {
Object.defineProperty(this,'firstName',{
get:function () {
return fname;
}
,set:function (newValue) {
fname=newValue;
},
configurable:true
});
Object.defineProperty(this,'lastName',{
get:function () {
return lname;
}
,set:function (newValue) {
lname=newValue;
},
configurable:true
});
Object.defineProperty(this,'fullName',{
get:function () {
return fname+lname;
},
configurable:true
});
}
module.person=person;
return module;
})(personModule || {});
var personObject=new personModule.person( "Raju","Rani");
console.log(personObject.fullName);
Object.seal(personObject);
//delete personObject.firstName;-->It throws error here
var personObject2=new personModule.person( "Shiva","Kumar");
delete personObject2.firstName;
console.log(personObject2.firstName);
Cảm ơn
1 Câu trả lời
这里是代理版本,以防您不喜欢在构造函数上添加 Object.seal
"use strict";
var personModule=(function (module) {
var person=function (fname,lname) {
Object.defineProperty(this,'firstName',{
get:function () {
return fname;
}
,set:function (newValue) {
fname=newValue;
},
configurable:true
});
Object.defineProperty(this,'lastName',{
get:function () {
return lname;
}
,set:function (newValue) {
lname=newValue;
},
configurable:true
});
Object.defineProperty(this,'fullName',{
get:function () {
return fname+lname;
},
configurable:true
});
}
module.person=new Proxy(person, {
construct(target, args){
args.unshift(null);
let ctor = target.bind.apply(target, args);
let result = new ctor();
Object.seal(result);
trả về kết quả;
}
});
return module;
})(personModule || {});
var personObject=new personModule.person( "Raju","Rani");
console.log(personObject.fullName);
Object.seal(personObject);
//delete personObject.firstName;-->It throws error here
var personObject2=new personModule.person( "Shiva","Kumar");
delete personObject2.firstName;
console.log(personObject2.firstName);
关于javascript - javascript中如何防止对象属性不被扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40816029/
Tôi có một ứng dụng trong đó nhiều đối tượng của tôi mở rộng một lớp trừu tượng định nghĩa các phương thức như create() edit() retrieve() và delete(). Vì mỗi lớp con sử dụng cùng một logic cho các hàm này, nên lớp trừu tượng định nghĩa mặc định
Tôi đang sử dụng $anchorScroll để cuộn đến đầu trang nơi phần tử html có ID #brand. Mã AngularJS: $location.hash(
Tôi muốn hủy kích hoạt chức năng nhấp chuột phải trong ứng dụng của mình, chức năng này cung cấp tùy chọn cài đặt ứng dụng trên màn hình nền. Tôi có thể làm điều gì đó như thế này bằng cách nào? Câu trả lời hay nhất Nhấp chuột phải vào dự án trong Visual Studio và chọn Thuộc tính. Có một hộp kiểm "Kích hoạt hoạt động của trình duyệt
Tôi đang nhắm mục tiêu vào một div bằng cách sử dụng jquery và trong CSS của tôi, tôi có div.right-sm:hover{background-color: blue} Tôi muốn dừng việc di chuột bằng cách sử dụng jquery: $(this
Vì vậy, tôi đang cố gắng sao chép chức năng thuộc tính "giữ chỗ" của html5. Một điều tôi hiện đang gặp khó khăn là làm sao để dấu nháy xuất hiện ngay ở đầu phần tử khi bạn bắt đầu nhập dữ liệu. Theo như hiện tại, dấu mũ xuất hiện ở nơi người dùng nhấp vào, và sau đó khi tôi sử dụng jQuery
Khi biểu mẫu đã được điền và gửi, nếu bạn làm mới trang, sẽ có thông báo biểu mẫu sẽ được gửi lại. (Nộp lại mẫu). Có cách nào tốt để ngăn chặn điều này xảy ra không? Hoặc kết thúc phiên này? Có hướng dẫn nào về vấn đề này không? Cảm ơn câu trả lời hay nhất. Đã xử lý xong thư POST.
Tôi muốn ngăn không cho nhập @ vào mục nhập. Nhưng nó không có tác dụng, bạn có biết tại sao không? $(function() { $(document).on('keyup', '[placeholder="x"]', vui vẻ
Tôi đang tạo một ứng dụng bằng PHP và liên quan đến MySQL. Nếu xảy ra lỗi trong quá trình yêu cầu, tôi sẽ "nhóm các truy vấn lại với nhau" như thế nào, kiểm tra xem nó có thành công hay không và sau đó thực sự ảnh hưởng đến bảng thực tế như thế nào. Nếu bản cập nhật thực tế cho bảng không thành công, hãy khôi phục về trạng thái trước khi cập nhật
Câu hỏi này đã có câu trả lời ở đây: Đã đóng cách đây 11 năm. Có thể trùng lặp: Trình obfuscator Java tốt nhất? Đối với ví dụ của tôi, tôi biết rằng eclipse cung cấp một plugin dịch ngược. Và
Đây là một ví dụ minh họa cho vấn đề của tôi: JSFiddle Tôi đang tạo một menu thả xuống tùy chỉnh (thực ra tôi đang sử dụng biểu tượng icomoon thay vì chữ V)... trông có vẻ ổn, nhưng ::after của phần tử cha đang ngăn không cho chọn :(
Bất cứ khi nào tôi viết mã yêu cầu nhiều điều kiện, tôi thực hiện như sau: if foo: if bar: if foobar: if barfoo: if foobarfoo:
Tôi không chắc thuật ngữ này có đúng không, bạn có thể sử dụng những thủ thuật mã nào để khiến người khác khó có thể sửa đổi tệp nhị phân/lắp ráp để bỏ qua các lần kiểm tra: Ví dụ như trong mã nguồn. bool verificationResult = verify(); nếu (xác minh
Tôi đang tìm cách dễ dàng để kiểm tra nhiều bảng bộ phận để xác định xem số bộ phận nhất định đã tồn tại hay chưa trước khi thêm nó vào một bảng nhất định. Ý tưởng tốt nhất hiện tại của tôi là một bảng phụ chỉ liệt kê mỗi PN từ tất cả các bảng trong một cột, với một khóa duy nhất; nhưng tôi
Câu hỏi này đã có câu trả lời tại đây: jquery stop child triggering parent event (7 câu trả lời) Đã đóng 8 năm trước. Tôi không chắc liệu điều này có thực sự nổi bọt không, tôi sẽ giải thích. Tôi có điều này:
Tôi có một ứng dụng web Spring MVC (không chắc thông tin này có quan trọng không, nhưng có thể là có) sử dụng ModelAndView để truyền giá trị chuỗi vào các tệp JSP. Giá trị chuỗi có dạng: d@.
Tôi đang cố gắng sử dụng phương pháp khóa biểu mẫu để bảo vệ csrf tại đây http://net.tutsplus.com/tutorials/php/secure-your-forms-with-form-keys/
Htmlentities có phải là giải pháp tốt nhất để ngăn ngừa XSS trong PHP không? Tôi cũng muốn cho phép các thẻ đơn giản như b, i, a và img. Giải pháp tốt nhất để đạt được điều này là gì? Tôi đã cân nhắc bbcode, nhưng thấy rằng không có
Tôi có một dịch vụ JAX-RS rất cơ bản (lớp BookService bên dưới) cho phép tạo các thực thể kiểu Book (cũng bên dưới). Tải trọng POST { "acquisitionDate": 14188
Tôi đang sử dụng Polymer 1.5 và tôi thực sự cần biến "this" không bị ánh xạ ra bên ngoài. Tôi biết TypeScript sẽ thực hiện điều này vì một số lý do chính đáng. khai báo var Polymer:
Câu hỏi này đã có câu trả lời tại đây: Thuộc tính chỉ đọc ở cấp độ lớp trong Python (3 câu trả lời) Đã đóng 6 năm trước. Có cách nào để ghi đè __set của một biến thể hiện không?
Tôi là một lập trình viên xuất sắc, rất giỏi!